给出STDIN上的以下示例输入:
foo bar bar baz === qux bla === def zzz yyy
是否可以将它拆分为分隔符(在本例中为’===’)并通过stdin将其提供给并行运行的命令?
因此上面的示例输入将导致3个并行进程(例如名为do.sh的命令),其中每个实例都接收STDIN上的部分数据,如下所示:
do.sh(实例1)通过STDIN接收:
foo bar bar baz
do.sh(实例2)通过STDIN接收:
qux bla
do.sh(实例3)通过STDIN接收:
def zzz yyy
我想这样的事情可能使用xargs或GNU parallel,但我不知道如何.
GNU Parallel可以从版本20110205执行此操作.
cat | parallel --pipe --recend '===\n' --rrs do_stuff