bash - 如何将参数的一部分传递给 gnu 并行命令

标签 bash parallel-processing gnu-parallel

我正在尝试运行 GNU 并行命令并向其传递一组日期,类似这样但更复杂的命令:

parallel '/some/binary {}' ::: 20131017 20131018

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

'/some/binary 201310/20131018'

所以它拆分了参数的第一部分..我怎样才能达到这种效果?根据我想象的 bash 变量来思考:

'/some/binary {:4}/{}' ::: 20130910 20131018 etc...

最佳答案

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

parallel --gnu 'var="{}"; /some/binary "${var:0:6}/$var"' ::: 20131017 20131018

这将执行

/some/binary 201310/20131017
/some/binary 201310/20131018

关于bash - 如何将参数的一部分传递给 gnu 并行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19529607/

相关文章:

bash - Azure ML Studio 笔记本使用 Python 3.6 内核而不是 3.8 内核来执行笔记本魔法 %%bash 命令?

linux - 乘以命令输出的数量

bash - 启动 Erlang shell/节点时如何运行自定义函数? (即 `.erl` 文件中的函数)

python - 通过多处理传递大量数据

bash - gnu 并行 : space interpretation and within process variable editing

bash - 在 sed 中的变量后面附加文本

linux - 当 var=$(... | grep "value") 为空时,脚本退出并出现错误,但当 grep 有结果时,脚本可以工作

linux - 在前台生成并行进程

java - Java 8 中的流 : simple solution to use parallelstream() on a cluster?

bash - GNU 并行 : how to prevent specific jobs from being processed in parallel