sed:-iと>ファイルの違いは何ですか?

sed:-iと>ファイルの違いは何ですか?

> fileこれは具体的ではなくファイルsedに書き込むことですが、オプションとどのように比較されますか?マニュアルページを読みましたが、それが何を意味するのか理解していません。これらのオプションの中で本当に良いものがありますか?どちらが速いですか?少ないメモリが必要ですか?追加の洞察力があれば共有してください。stdoutsed-iin-place

ベストアンサー1

「内部」とは、ジョブがすでに占有されている領域(ディスク領域やメモリなど)を使用し、追加のリソースを必要としないことを意味します。この場合、提供される内容に固執することが重要ですfile

最大の利点は、名前がまだあるファイルから出力をsed -i -e '…' file読み取って保存できることです。これは同じファイルのように見えますが、その背景にはあります。filefileそうではない。デフォルトでは、指定さsedれたファイルを読み取り、処理された出力を一時ファイルに移動し、一時ファイルを元のファイルに置き換えて元の名前に移動します。

だからこれはありません厳しく別のファイルが必要で、ある時点であなたが持っているので、「所定の位置に」二つファイルですが、結果はほぼ所定の位置にあるのと同じです。別のファイルに書き込む利点があります:

ファイルの以前のバージョンは自動的に最新バージョンに置き換えられるため、各時点でファイル名はファイルの有効で完全なバージョンを指します。

一方、それほどsed -e '…' file >file多くはありません。さらに悪いことは、fileコンテンツが失われることです。動作は次のように説明されます。パイプを元の位置に戻します。>これにより、-iデータが失われる可能性があります。

おすすめ記事