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異なる実装間の形式。

答え2

次のソリューションはHPUX(UNIX)用です。

1 { rm test1.sh && awk '{gsub("Error", "NO_Error", $0); print}' > test1.sh; } < test1.sh.:

2. perl -pi -e 's/Error/NO_Error/g' test1.sh

三。 sed 's/Error/NO_Error/g' test1.sh | tee test1.sh

答え3

-esed複数のコマンドを実行するためのオプション

sed -e 's/linux/unix/' -e 's/os/OS/' file.txt

file.txtと思う

linux os

それからO / Pは

unix os

-i変更を永久に保存するオプション...

関連情報