結論
-i
オプションを付ける。
実例(準備編)
sample.txt
が以下のような内容だったとします。
hello, Japan hello, world hello, programming
この内容において、programming
を Ruby
に置換するとします。
実例(失敗例)
-i
オプションを付けない場合の単純結果は以下のとおりです。
$ sed -e "s/programming/Ruby/g" sample.txt hello, Japan hello, world hello, Ruby
この内容を同じ sample.txt
に書き出したいと考えたとします。とすると、こういうコマンド構成が思いつくのではないでしょうか。
$ sed -e "s/programming/Ruby/g" sample.txt > sample.txt
……しかしこれですと、sample.txt
の中身は空っぽになります。
実例(成功例)
-i
オプションを付けて実行すれば、望み通りの結果が得られます。以下のようにします。
$ sed -i -e "s/programming/Ruby/g" sample.txt