如何将 GNU Parallel 中的任务数量限制为第一个参数?

如何将 GNU Parallel 中的任务数量限制为第一个参数?

我想根据一组参数运行一系列并行作业,同时分配第二个参数。我使用as--link中的选项GNU Parallel

parallel --jobs 3 --link echo ::: A B C ::: D E F G
A D
B E
C F
A G

当第一组参数的数量高于第二组参数时,它完美地工作。

在上面的示例中,任务A已重复两次。

如何避免第一组参数出现重复?换句话说,任务现在A..C只是任务D..G的周期性参数A..C

论点应该是

A D
B E
C F

就像第一组的数量较多时的情况一样,

parallel --jobs 3 --link echo ::: A B C H ::: D E F
A D
B E
C F
H D

答案1

如果您不希望输入源重复,请使输入源的长度相同。代替:

parallel --jobs 3 --link echo ::: A B C ::: D E F G

跑步:

parallel --jobs 3 --link echo ::: A B C ::: D E F

目前您还可以:

parallel --jobs 3 echo ::: A B C :::+ D E F G

但这被认为是一个错误,所以不要指望这会在未来发挥作用。

相关内容