私にとって奇妙なことは、パイプが次の|
コマンドに対して異なる動作をすることです。
curl http://norvig.com/big.txt | sort
curl http://norvig.com/big.txt | grep employ
最初のコマンドでは、パイプラインはcurl
実行が終了するのを待ちます。 2番目のコマンドは、実行grep
中に中間出力をパイプします。curl
パイプラインの仕組みを決定するには?
修正する:
sort
問題は何をしたか、grep
何ができるかではありません。問題は、パイプラインがどのように理解できるかということです。
答え1
私が考える理由は次のとおりです。
sort
入力の読み取りが完了するまでソートを開始できません(または少なくとも結果の印刷)。
grep
入力を受信し始めたら、ジョブを開始して結果の印刷を開始できます。