違いは何ですか
cat dat | tee >(wc -l ) | some other command
と
cat dat | tee file | wc -l
内部で何が起こっているのかという点で?ティーがストリームをファイルとパイプにフォークしているので、2番目のものを理解できます。しかし、私は最初のものと混同しています。
最初の表記は、Bash 4.xのプロセス置換です(3.xにない、または3.xのすべてのバージョンではない)。
関係する限り、標準出力だけでなく、書き込み先tee
のファイル名(など)が付けられます。/dev/fd/64
これは、実際にはパイプの書き込み終了用のファイル記述子です。に関する限り、標準入力( forにwc
接続されているパイプの読み取り端)を読み取り、パイプラインを呼び出すシェルの標準出力(標準出力がダウンしない)に応答を書き込みます。パイプライン)。/dev/fd/64
tee
tee
>(はbashのプロセス置換であるため、最初の行は次のように述べています。プロセス'wc'が実行されている間、ファイル'dat'の内容を他のコマンドに送信します。 '
bashのマンページの「プロセス置換」を確認してください。