seq())' 一起使用在我的 ~/.parallel/config , 为-6ren">
gpt4 book ai didi

gnu-parallel - 带有序列号 `{#}` 和 `-n` 选项的 GNU Parallel

转载 作者:行者123 更新时间:2023-12-04 07:56:42 25 4
gpt4 key购买 nike

将 GNU Parallel 20210222 与 --rpl '{0#} $_=sprintf("%02d",$job->seq())' 一起使用在我的 ~/.parallel/config , 为什么

seq 256 | parallel -n 64 echo {0#}
输出
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
并不是
01
02
03
04
然而
seq 256 | parallel -n 64 echo {#}
产出
1
2
3
4
?

最佳答案

这并不奇怪:

seq 10 | parallel -n 5 echo '{= $_=-$_ =}'
给出与此相同的:
seq 10 | parallel --rpl '{-} $_=-$_' -n 5 echo {-}
即:
-1 -2 -3 -4 -5
-6 -7 -8 -9 -10
您可以通过在前面加上要替换的参数的编号来使 {-} 成为位置替换字符串:
seq 10 | parallel --rpl '{-} $_=-$_' -n 5 echo {1-} {3-} {5-}
这使:
-1 -3 -5
-6 -8 -10
位置可以是定义的一部分:
seq 10 | parallel --rpl '{-} 1 $_=-$_' -n 5 echo {-}
这使:
-1
-6
{#} 在源代码中定义为:
     '{#}'  => '1 $_=$job->seq()',
所以这是一个位置替换字符串,只会替换第一个值。
这个
{0#} $_=sprintf("%02d",$job->seq())
不是位置替换字符串,而是会为每个输入替换的普通替换字符串。
但它可以很容易地变成一个位置的:
seq 256 | parallel --rpl '{0#} 1 $_=sprintf("%02d",$job->seq())' -n 64 echo {0#}
seq 256 | parallel --rpl '{0#} $_=sprintf("%02d",$job->seq())' -n 64 echo {10#}
最后一个看起来有点困惑,但那是因为我们人类会看到“10”而不是“1”(输入数字)后跟“0#”。

关于gnu-parallel - 带有序列号 `{#}` 和 `-n` 选项的 GNU Parallel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66665339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com