My開発メモ

複数のファイル内の文字列をまとめて置換する(Ubuntu)

以下は bash の場合。

1つのファイルを対象にする場合

$ grep -l '置換対象の文字列' 置換対象のファイル | xargs sed -i -e 's/置換対象の文字列/置換後の文字列/g'

カレントディレクトリの全てのファイルを対象にする場合

$ grep -l '置換対象の文字列' ./* | xargs sed -i -e 's/置換対象の文字列/置換後の文字列/g'

sed -i のところ sed -i.bak とすると、もとのファイル名.bak としてバックアップファイルを つくってくれて、しかも置換したファイルもつくってくれる。

参考

カテゴリー: memo, Ubuntu

タグ: bash, grep, linux, sed, ubuntu

カウント: 228