sedコマンドを使用してファイルを永久に変更するには?

sedコマンドを使用してファイルを永久に変更するには?

可能ですか?次のコマンドでこれを行うことができるという内容をどこかで読みました。

sed -e [コマンド] [ファイル]

しかし、同じことをするようです。

sed [コマンド] [ファイル]

(変更は保存されていません。)sedを使用してこれを行う方法はありますか?

ベストアンサー1

私はあなたが探していると思います-i

   -i[SUFFIX], --in-place[=SUFFIX]

          edit files in place (makes backup if SUFFIX supplied)

たとえば、

$ cat foo.txt
hello world
$ sed -i 's/o/X/g' foo.txt
$ cat foo.txt
hellX wXrld

サフィックスを指定すると、バックアップファイルが作成されます。

$ ls
foo.txt
$ sed -i.bak 's/o/X/g' foo.txt 
$ ls
foo.txt  foo.txt.bak

入力ファイルを変更し、元のファイルデータを含むバックアップを作成します。

また、これはGNU用であることに注意してくださいsedニュアンスsed異なる実装間の形式。

おすすめ記事