ファイル内の文字列を置換する

Linux

以下のコマンドで、ファイルfoo.txt内に含まれるabcという文字列をdefに置換した、bar.txt というファイルを作成できます。

sed -e "s/abc/def/g" ./foo.txt > ./bar.txt

eオプションの後に置換の表現を記述します。

「/g」をつけるとファイル内でマッチしたパターン全てを置換します。「/」で終わる場合は最初にマッチした1回のみ置換します。

ファイルに上書きするときは-iを付け加えます。

grep でディレクトリ内のファイルをリストアップして,その全てを対象に置換することもできます。

for f in `grep -rlI "abc" path/somewhere `; do sed -i -e "s/abc/def/g" $f; done