ソート時にLinuxでパイプを介してデータがどのように流れますか?

ソート時にLinuxでパイプを介してデータがどのように流れますか?

私が次のことをしているとしましょう。

cat afile [ | possibly awk or similar to process the file] | sort

データフローがこれであることを知っています

afile -- stdout -- os buffer -- stdin -- sort 

サイズafileが小さい場合は、sort内容全体をインポートして並べ替えることが可能です。

ただし、ファイルが大きい場合、データはチャンクに流れなければなりません。
パイプラインプロセスが同時に実行されるため、sortはデータを受け取り、どこかに繰り返し保存できることを理解しています。

sortソートする前にすべてのデータが受信されるのを待ちますか?
おそらくファイルに書き込むことができます。
その後、このファイルを処理しますか?

sortこの質問は、機能するためにデータ全体を必要としない他のコマンドに適用できると思います。
(Linuxコマンドがパイプを介して大きなデータを受け取り、実行される前にデータ全体を取得する必要がある場合はどうなりますか?しかし、これはおそらく一般的な質問です。)

ベストアンサー1

おすすめ記事