ディレクトリ以下の複数ファイルの文字列を一括置換するコマンド

for FILE in `grep -l TARGET_KEYWORD *`; do  cp $FILE $FILE.bak; sed -e "s/TARGET_KEYWORD/REPLACE_KEYWORD/g" $FILE.bak > $FILE; done

grepでうまくhitしないときや、拡張子に条件を追加したいときには、

for FILE in `find . -type f -name "*.txt" -exec grep -l TARGET_KEYWORD \{\} \;` ; do perl -p -i -e 's/TARGET_KEYWORD/REPLACE_KEYWORD/g' $FILE; done