如果您有多个核心,并且希望进程是并行的,则可以执行以下操作:
parallel -j 3 -- './app | grep A > A.out' './app | grep B > B.out' './app | grep C > C.out'
这将在并行内核中产生三个进程。如果要向控制台或主文件提供一些输出,则它的优点是使输出保持一定顺序,而不是混合输出。
的GNU工具平行从奥莱丹下可以从下名最回购来获得并行或moreutils。来源可从Savannah.gnu.org获得。另外一个介绍教学视频是在这里。
附录
使用更新的并行版本(不一定是您的发行版仓库中的版本),您可以使用更优雅的构造:
./app | parallel -j3 -k --pipe 'grep {1} >> {1}.log' ::: 'A' 'B' 'C'
这样可以达到在单独的内核或线程中运行一个./app和3个并行grep进程的结果(由并行本身确定,也将-j3视为可选的,但在此示例中提供该值是出于指导目的)。
通过执行以下操作可以获得较新版本的parallel:
wget http://ftpmirror.gnu.org/parallel/parallel-20131022.tar.bz2
然后通常的解压缩,cd到parallel- {date},。/ configure && make,sudo make install。这将安装并行,手册页并行和手册页parallel_tutorial。
./app | tee >(grep A > A.out) >(grep B > B.out) | grep C > C.out