複数のコアがあり、プロセスを並列にしたい場合は、以下を実行できます。
parallel -j 3 -- './app | grep A > A.out' './app | grep B > B.out' './app | grep C > C.out'
これにより、並列コアで3つのプロセスが生成されます。コンソールまたはマスターファイルへの出力が必要な場合、出力を混合するのではなく、出力を一定の順序に保つという利点があります。
Ole Tangeのgnuユーティリティparallelは、ほとんどのリポジトリからparallelまたはmoreutilsという名前で入手できます。ソースはSavannah.gnu.orgから入手できます。また、紹介ビデオもこちらにあります。
補遺
並列の最新バージョン(必ずしも配布リポジトリのバージョンではない)を使用して、より洗練された構造を使用できます。
./app | parallel -j3 -k --pipe 'grep {1} >> {1}.log' ::: 'A' 'B' 'C'
1つの./appおよび3つの並列grepプロセスを別々のコアまたはスレッドで実行した結果を達成します(並列自体によって決定されるように、-j3もオプションであると考えていますが、この例では参考のために提供されています)。
parallelの新しいバージョンは、次のようにして取得できます。
wget http://ftpmirror.gnu.org/parallel/parallel-20131022.tar.bz2
その後、通常のアンパックを行い、cdでparallel- {date}、。/ configure && make、sudo make installを実行します。これにより、parallel、manページparallel、およびmanページparallel_tutorialがインストールされます。
./app | tee >(grep A > A.out) >(grep B > B.out) | grep C > C.out