カレントディレクトリのサブディレクトリを含んだファイルの文字列を一括置換

こんな感じで、’置換する文字列’を’置換したい文字列’に置換します。

find . -type f | xargs grep -l '置換する文字列' | xargs sed -i.bk -e 's/置換する文字列/置換したい文字列/g'
find . -type f

カレントディレクトリ及びそのサブディレクトリからファイル名を取得。

xargs grep -l '置換する文字列'

‘置換する文字列’を含んだファイル名を抽出。

xargs sed -i.bk -e 's/置換する文字列/置換したい文字列/g'

抽出したファイルに含まれている’置換する文字列’を’置換したい文字列’に置換。
-i.bk このオプションで、置換するときにバックアップファイルを作成します。
バックアップが必要ない場合は -i だけでOK。


Qiitaに投稿した記事です。