質問: 1つのコマンドの出力を他の2つのコマンドにパイプできますか? 1つのコマンドの出力を他の2つのコマンドの入力に同時にパイプする方法を教えてください。
回答: teeコマンドがあなたの望むことをするようです。キーは使用することです>( ) プロセス置換 の場合。 teeでは、次のパターンを使用します。tee >(proc1) >(proc2) >(proc3) | proc4 したがって、lsの出力を2つの異なるgrepプログラムへの入力として使用する場合は、各grepの出力を別のファイルに保存し、すべての結果をパイプしてless、試してみてください:ls -a | tee >(grep ^[.] > hidden-files) >(grep -v ^[.] > normal-files) | less ls -aの結果は、両方のgrepsに「パイプ」されます。ファイルhidden-filesには最初のgrepの出力の内容が含まれ、normal-filesには2番目のgrepの結果が含まれます。 すべてのファイルがポケットベルlessに表示されます。 [〜#〜] edit [〜#〜]:lessに表示されるのはgrepsの結果ではなく、ls -aのまったく同じ出力。出力をls -aからlessに変更する場合(たとえば、通常のファイルが非表示のファイルの前に表示されるように順序を入れ替える)、次のことを試してください。ls -a | tee >(grep ^[.]) >(grep -v ^[.]) >/dev/null | less >/dev/nullがない場合、grepsの出力は、置換する代わりにls -aの出力に追加されます。 ソース