Linuxの標準出力の内容を複数のプロセスに渡す

Linuxで、標準出力の内容をそのまま複数のプロセスに渡したい時がある。
そんなときは、teeコマンドを用いると良いだろう。

コマンド | tee >(コマンド1) >(コマンド2) .... | コマンドN

もしくは

コマンド | tee >(コマンド1) >(コマンド2) ... 1 > /dev/null

これを用いる事で、以下のようにechoで出力した値に対し、複数の処理を行うことができる。
…まぁ、処理される順番は順不同なので、そこはご愛嬌ということで。

echo 1234 | tee >(sed 's/34/56/g') >(sed 's/34/78/g') | sed 's/34/90/g'

[root@localhost ~]# echo 1234 | tee >(sed 's/34/56/g') >(sed 's/34/78/g') | sed 's/34/90/g'
1290
1278
1256

色々と使いドコロが難しい気もするけど、ファイルに書き出すのであれば(順不同だけど)うまく動作するだろう。
もしGNU parallelが使える環境であれば、そちらのほうがいいかも知れない。GNU Parallel使ったことないけど。