23

私は知っている

program1 | program2

program1 | tee outputfile | program2

しかし、program1 の出力を program2 と program3 の両方にフィー​​ドする方法はありますか?

4

6 に答える 6

33

teeこれは、プロセス置換を使用して行うことができます。

program1 | tee >(program2) >(program3)

の出力は、program1内部( )にあるもの、この場合はとにパイプさprogram2program3ます。

于 2012-04-18T21:27:33.387 に答える
2

bashマニュアルには、名前付きパイプまたは名前付きファイル記述子のいずれかを使用して構文をエミュレートする方法が記載>(...)されているため、に依存したくない場合はbash、スクリプトで手動で行うことができます。

mknod FIFO
program3 < FIFO &
program1 | tee FIFO | program2
wait
rm FIFO
于 2012-04-19T20:48:16.217 に答える
1

いつでも program1 の出力をファイルに保存してから、それを program2 および program3 の入力にフィードすることができます。

program1 > temp; program2 < temp; program3 < temp;
于 2012-04-18T21:21:51.320 に答える