> file
これは具体的ではなくファイルsed
に書き込むことですが、オプションとどのように比較されますか?マニュアルページを読みましたが、それが何を意味するのか理解していません。これらのオプションの中で本当に良いものがありますか?どちらが速いですか?少ないメモリが必要ですか?追加の洞察力があれば共有してください。stdout
sed
-i
in-place
ベストアンサー1
「内部」とは、ジョブがすでに占有されている領域(ディスク領域やメモリなど)を使用し、追加のリソースを必要としないことを意味します。この場合、提供される内容に固執することが重要ですfile
。
最大の利点は、名前がまだあるファイルから出力をsed -i -e '…' file
読み取って保存できることです。これは同じファイルのように見えますが、その背景にはあります。file
file
そうではない。デフォルトでは、指定さsed
れたファイルを読み取り、処理された出力を一時ファイルに移動し、一時ファイルを元のファイルに置き換えて元の名前に移動します。
だからこれはありません厳しく別のファイルが必要で、ある時点であなたが持っているので、「所定の位置に」二つファイルですが、結果はほぼ所定の位置にあるのと同じです。別のファイルに書き込む利点があります:
ファイルの以前のバージョンは自動的に最新バージョンに置き換えられるため、各時点でファイル名はファイルの有効で完全なバージョンを指します。
一方、それほどsed -e '…' file >file
多くはありません。さらに悪いことは、file
コンテンツが失われることです。動作は次のように説明されます。パイプを元の位置に戻します。。>
これにより、-i
データが失われる可能性があります。