![]() |
|
|
Googleのunix.com
|
|||||||
| シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| crontabのスクリプトからの不思議な行動 | PilotGoose | シェルプログラミングとスクリプティング | 1 | 2008年6月26日 10:54午前 |
| 私の変なスクリプトを助けて! | kdyzsa | シェルプログラミングとスクリプティング | 1 | 2008年6月15日 11:39午後 |
| sudoの奇妙な行動 | geomonap | UNIXの詳細&エキスパートのためのユーザー | 1 | 2006年2月3日 05:08午後 |
| このシェルスクリプトの動作については説明 | xiamin | シェルプログラミングとスクリプティング | 9 | 2001年11月9日 01:13午後 |
| 変なスクリプト | Duckman | UNIXのダミー質問と回答のため | 2 | 2001年3月14日 01:53午後 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
変なスクリプトで動作するsed
私はすべてのファイルをディレクトリ内の特定の単語を交換するための小さなスクリプトを書いてきた。 コード:
#!/bin/sh #Get list of files to be edited file_list=`ls -p` for i in $file_list do echo "Processing $i" alteredi=`echo "$i" | sed -e 's/\//d/'` if [ $i = $alteredi ] then if [ $i != "maketest" ] then #actual altering cat $i | sed -e "s/login\//login.tst\//" > $i cat $i | sed -e "s/cyberkd\//cyberkd.tst\//" > $i cat $i | sed -e "s/\/db_connect.inc.php/\/testdb_connect.inc.php/" > $i echo " $i has been altered" else echo " Not altering myself" fi else echo " Not altering directories" fi done 今、私は普通のユーザーとしてこのスクリプトを実行すると、 4KBのは、最初のファイルの処理されます。 4KBのすべてのファイルよりも大きいので半分にカットされています。残りのバイトは、新しいファイルのうち残っている。ときに、 rootとしてこのスクリプトは、 8KBの走りに処理された。が、全体のファイルを処理するための方法はありますか? 私の猫は、大きなテキストファイルを全部私の画面上に印刷されます。 事前に感謝します。 |
|
||||
|
読んでいないか、同じファイルへの書き込みや猫を使って セッド 、これらの行を置き換える:冗長である コード:
cat $i | sed -e "s/login\//login.tst\//" > $i cat $i | sed -e "s/cyberkd\//cyberkd.tst\//" > $i cat $i | sed -e "s/\/db_connect.inc.php/\/testdb_connect.inc.php/" > $i : コード:
sed -e "s/login\//login.tst\//" -e "s/cyberkd\//cyberkd.tst\//" -e "s/\/db_connect.inc.php/\/testdb_connect.inc.php/" "$1" > temp.file mv temp.file "$1" 場合 セッド バージョンが代わりに一時ファイルを使用せずにファイルを編集することができます- iフラグをサポートしています。 コード:
sed -i -e "s/login\//login.tst\//" -e "s/cyberkd\//cyberkd.tst\//" -e "s/\/db_connect.inc.php/\/testdb_connect.inc.php/" "$1" よろしく 編集Franklin52で最終; 2008年8月30日に 08:52午前.. |