Hatena::ブログ(Diary)

IT memorandum

2009年05月20日

シェルで一斉置換

| 13:06

シェルを使って、あるカレントディレクトリ以下の、

特定の拡張子のファイルに含まれる文字列を置換する方法。

// EXT:置換対象とするファイルの拡張子
// TO:置換後の文字列
// FROM:置換前の文字列
$ EXT="php";FROM="example2";TO="example";AFILES=`find ./ -name "*.$EXT"`;FILES=`grep -l $FROM $AFILES`;
for FILE in $FILES; do cp $FILE $FILE.back; sed -e "s;$FROM;$TO;g" $FILE.back > $FILE;done;

※ページ幅の都合上コマンドに改行が入っていますが、実際には改行しません。

トラックバック - http://d.hatena.ne.jp/jun-ya/20090520/1242792407