私が知っている限り、teeコマンドを使用して標準出力を画面とは異なるファイルに分割できます。
command -option1 -option2 argument | tee file1 file2 file3
理論的には、一連のコマンドを生成できるように、teeを使用して出力をファイルの代わりにコマンドにリダイレクトできますか?
ベストアンサー1
名前付きパイプ(http://linux.die.net/man/1/mkfifo)コマンドラインからtee
名前付きパイプのコマンドを読みます。
mkfifo /tmp/data0 /tmp/data1 /tmp/data2
cmd0 < /tmp/data0 & cmd1 < /tmp/data1 & cmd2 < /tmp/data2 &
command -option1 -option2 argument | tee /tmp/data0 /tmp/data1 /tmp/data2
完了すると、command
名前tee
付きパイプが閉じられ、各パイプにEOF(ゼロバイト読み取り)信号が発生し、/tmp/dataN
通常cmdN
プロセスは終了します。実際の例:
$ mkfifo /tmp/data0 /tmp/data1 /tmp/data2
$ wc -l < /tmp/data0 & wc -w < /tmp/data1 & wc -c < /tmp/data2 &
$ tee /tmp/data0 /tmp/data1 /tmp/data2 < /etc/passwd >/dev/null
$ 61
1974
37
バックグラウンドプロセスのため、シェルはプログラムが出力される前にプロンプトを返します。 3 つのインスタンスはすべてwc
正常に終了しました。