
>
できる
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
sed
w
必要なことを行うコマンドがあります。
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
。