使用GNU并行拆分命令行args

drh*_*des 37 bash file-processing gnu-parallel

使用GNU parallel:http://www.gnu.org/software/parallel/

我有一个程序,需要两个参数,例如

$ ./prog file1 file2
$ ./prog file2 file3
...
$ ./prog file23456 file23457
Run Code Online (Sandbox Code Playgroud)

我正在使用生成文件名对的脚本,但这会产生问题,因为脚本的结果是单个字符串 - 而不是一对.喜欢:

$ ./prog "file1 file2"
Run Code Online (Sandbox Code Playgroud)

GNU parallel 似乎有一大堆技巧,我想知道是否有一个用于在分隔符周围分割文本:

$ generate_file_pairs | parallel ./prog ?  
  # where ? is text under consideration, like "file1 file2"
Run Code Online (Sandbox Code Playgroud)

简单的解决方法是在prog中手动拆分args,但我想知道它是否可能GNU parallel.

Ole*_*nge 66

你可能正在寻找--colsep.

generate_file_pairs | parallel --colsep ' ' ./prog {1} {2}  
Run Code Online (Sandbox Code Playgroud)

阅读man parallel更多.如果您尚未这样做,观看介绍视频http://www.youtube.com/watch?v=OpaiGYxkSuQ