linux – 如何使用乘法增量并行运行

我知道我可以使用“parallel”在具有给定增量的变量上并行运行任何脚本/应用程序的多个实例,例如:

parallel "echo hello {}" ::: {1..16..2}

输出将是:

hello 1
hello 3
hello 5
hello 7
hello 9
hello 11
hello 13
hello 15

我想使用一个与run变量相乘的增量,以便得到如下输出:

hello 1
hello 2
hello 4
hello 8
hello 16

我应该在{1..16 ..#}写什么?

谢谢!

最佳答案 试试这个:

parallel "echo hello {}" ::: $(awk 'BEGIN {for(i=0; i<=16; i++) printf 2**i" "}')

awk用于打印2的幂列表,然后并行使用.

或者:

parallel "echo hello {}" ::: $(printf '%s\n' 2^{0..16} | bc | tr '\n' ' ')

这打印出数字1到16作为字符串x ^ 2的一部分,printf确保每个数字在一个单独的行上. bc然后计算实际数字,tr再次删除换行符.

点赞