The UNIX and Linux Forums  

Go Back   UNIXおよびLinuxフォーラム > トップフォーラム > シェルプログラミングとスクリプティング
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午後

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 スレッドを評価 表示モード
  #1固定リンク)  
Old 2008年8月30日
Peetrus Peetrus is offline
登録ユーザー
  
 

参加日: 2008年8月
投稿: 2
変なスクリプトで動作する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の走りに処理された。が、全体のファイルを処理するための方法はありますか?

私の猫は、大きなテキストファイルを全部私の画面上に印刷されます。

事前に感謝します。
  #2固定リンク)  
Old 2008年8月30日
Franklin52 Franklin52 is offline Forum Staff  
モデレータ
  
 

参加日: 2007年2月
投稿数:4,346
読んでいないか、同じファイルへの書き込みや猫を使って セッド 、これらの行を置き換える:冗長である


コード:
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午前..
  #3固定リンク)  
Old 2008年8月30日
Peetrus Peetrus is offline
登録ユーザー
  
 

参加日: 2008年8月
投稿: 2
ありがとうございました。動きます!
Closed Thread

ブックマーク

タグ
セッドシェル

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 09:59午後


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
は、 UNIXおよびLinuxフォーラムのコンテンツ著作権© 1993 〜 2009 。すべての権利を管理しReserved.Ad RedTyger

コンテンツ関連のURLで vBSEO 3.2.0