GNU并行多组命令

时间:2014-11-24 17:19:11

标签: gnu-parallel

我想使用GNU Parallel来运行具有两个不同参数和两个不同glob的相同命令。例如,我想要运行以下作业:

mycmd A apples1
mycmd A apples2
mycmd A apples3
mycmd B bananas1
mycmd B bananas2

我可以通过两次单独的调用来完成,但是这会使通过一次调用parallel来管理我的工作失败。有办法吗?

parallel mycmd A ::: apples*
parallel mycmd B ::: bananas*

1 个答案:

答案 0 :(得分:0)

我假设你不想要Bs和你的苹果。否则它就像:

一样简单
parallel mycmd ::: [A-Z] ::: [a-z]*

如果A可以计算为第二个arg的第一个字符,则可以从版本20140722执行此操作:

parallel mycmd '{= $_=uc(substr($_,0,1)) =}' {} ::: [a-z]*

如果你有一个苹果列表和相应的像这样:

A,apples1
A,apples2
B,bananas1
B,bananas2
B,bananas3

然后你可以拆分,:

cat file | parallel --colsep , mycmd {1} {2}

如果这也不是你输入的方式,那么你需要解释一下你如何拥有你的和苹果。