sedは出力をファイルに保存できますか?

sedは出力をファイルに保存できますか?

>できる

echo "text" > file

teeできる

echo "test" | tee file 

sed上記の方法を使用せずに実行できますか?またはを使用せずにsedコマンド出力をファイルに保存できますか?>tee

答え1

teeと>はLinux上のデータリダイレクト用であるため、データリダイレクトに使用できます。

一方、sedはストリームエディタです。 sedは、teeや>などのデータリダイレクトには使用されません。ただし、これを行うにはコマンドの組み合わせを使用できます。

sedでteeまたは>を使用してください。

sed 's/Hello/Hi/g' file-name | tee file

または

sed 's/Hello/Hi/g' file-name > file

-iオプションでsedを使用する

sed -i 's/Hello/Hi/g' file-name

最後はリダイレクトしませんが、ファイル自体を変更します。

答え2

sedw必要なことを行うコマンドがあります。

wファイル名

現在のパターン空間をファイル名に書き込みます。

sed 'w file'それ自体と同じ効果がありますtee file。他のsedコマンドがある場合は、w最後に入力してください。

sed 's/This/That/;w file'

ただし、これは-n/--quiet/--silentこのオプションの影響を受けません。これは標準出力に行く内容だけを抑制します。

答え3

ankidaemonが正しく指摘したように、sed出力をファイルに保存する方法は?ファイルに対していくつかの操作(例:置換)を実行し、出力を同じファイルに保存したい場合は、それを追加したいと思います。内部編集を可能にする-iフラグがあります。sedただし、対応するサフィックスをパラメータとして提供する場合は、その過程でバックアップファイルが生成されます。必要でない場合は、空のファイル名を渡したり、-iタグなしで実行したりできます。

例:sed -i "s/from/to/" file内部変更file

関連情報