parallel-processing - GNU parallel 有两个参数

标签 parallel-processing csh gnu-parallel

我有一个 C-shell 脚本,其中有一个名为 $hosts_string 的变量,格式为:

host1,host2,...,hostN

我还有一个名为 $chrs_string 的变量,其形式为:

chr1,chr2,...,chrM

我还有一个名为 $inputFn 的变量,它指定了一个我需要处理的文本文件。

我想做的是让每个主机在 $chrs_string 的每个成员上运行一个名为 doStuff 的命令,获取 $inputFn作为输入文件名参数。

我尝试了以下方法:

parallel -S $hosts_string 'doStuff {1} {2} > {1}' ::: {$chrs_string} ::: {$inputFn}

如果这可行,这应该创建文件 chr1chrM 作为命令 doStuff 的输出,但我什么也没得到。并行完成而没有发出错误,但没有输出。

如果我不使用 parallel,命令本身可以正常工作,所以这不是命令,而是我如何为 parallel 指定参数。

为了确认这一点,我尝试了以下操作:

parallel -S $hosts_string 'echo {1} {2} > {1}' ::: {$chrs_string} ::: {$inputFn}

如果 this 可以工作,并且 $inputFn 是(例如)/foo/bar,那么我会得到(例如) 一个名为 chr1 的文件,其中包含字符串:

chr1 /foo/bar

如何调整我的 parallel 命令,以便它正确地遍历 $chrs_string$inputFn 的每个组合?

最佳答案

你很接近。你只是忘了::: 和::: 不一样

parallel -S $hosts_string 'echo {1} {2} > {1}' ::: {$chrs_string} :::: {$inputFn}

如果你只想要回显中的文件名,你只需这样做:

parallel -S $hosts_string echo '{1}' {$inputFn} '> {1}' ::: {$chrs_string}

关于parallel-processing - GNU parallel 有两个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14905883/

相关文章:

c++ - 通过 MPI 发送 OPENCV Mat 的最佳方式是什么

python - 使用 pandas 和 GNU Parallel 将数据并行导入 MySQL

shell - GNU 并行双虚线选项不起作用

linux - 将 grep 管道化为排序时出现问题

mysql - 从命令行 Mysql 创建表时出现问题

syntax-error - 如何在不退出 shell 的情况下在特定条件下停止采购 (t)csh 脚本?

php - 如何在仅打印出有错误的文件时递归地检查所有文件?

c++ - 混合并行 : MPI and TBB

javascript - 为操作完成而调用 Node 异步回调

clojure - 如何使用Clojure并行计算大量数字的总和