如何将部分参数传递给 gnu 并行命令

Pal*_*han 2 parallel-processing bash gnu-parallel

我正在尝试运行一个 GNU 并行命令并向它传递一堆日期,就像这样,但是一个更复杂的命令:

parallel '/some/binary {}' ::: 20131017 20131018
Run Code Online (Sandbox Code Playgroud)

这有效,但是我需要日期跨越两个不同的月份,并且对于参数 20131018,命令应该如下所示:

'/some/binary 201310/20131018'
Run Code Online (Sandbox Code Playgroud)

所以它分裂了论点的第一部分..我怎样才能达到这个效果?我想象的 bash 变量方面的思考:

'/some/binary {:4}/{}' ::: 20130910 20131018 etc...
Run Code Online (Sandbox Code Playgroud)

tha*_*guy 5

并行命令被解释为一个 shell 命令,所以你可以这样做

parallel --gnu 'var="{}"; /some/binary "${var:0:6}/$var"' ::: 20131017 20131018
Run Code Online (Sandbox Code Playgroud)

这将执行

/some/binary 201310/20131017
/some/binary 201310/20131018
Run Code Online (Sandbox Code Playgroud)