
sed
このようなファイルを使用する場合
sed 's/a/o' fruits
端末に必要な出力は表示されますが、ファイルの内容は変更されません。上記の置換でファイルを永続的に変更するにはどうすればよいですか?
答え1
パラメータを使用して-i
ファイルを永続的に変更します。
答え2
一般的に、そうすべきではありません。GNU coreutils と他のバージョンでは、-i
インプレース編集のオプションが追加されていますが、実装がさまざまで移植性がありません。ファイルはストリームではないので、 での編集はsed
避けてください。-i
のオプションはsed
、基本的にファイルを削除して再作成するため、シンボリックリンクも破壊します。より合理的な代替手段としてed
、 または を使用してくださいex
。
ex -s file << EOF
s/a/o/
w
EOF
答え3
sed のマニュアルページから:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if extension supplied)