【发布时间】:2023-12-31 13:30:01
【问题描述】:
我在使用 gnu 并行时遇到了两个问题。首先是最有趣的:
我有一个文件,其中一行包含两个由空格分隔的参数。这些参数应该一起传递给命令,以使命令可以将它们识别为单独的。
即
/path/to/A1 /path/to/A2
/path/to/B1 /path/to/B2
/path/to/C1 /path/to/C2
此外,我还有第二个变量作为数组。我希望将上面文件中的所有成对参数与所有数组值并行组合。
我快到了,我的代码如下所示。
parallel -a $tmpdir/inputfiles.txt $instaldir/ribotagger.pl \
-in {1} \
-region {2} \
-out $exitdir/$folder/ribotag.{2} \
::: ${regions[@]}
然而,在这种情况下,并行解释 {1} 不是
/path/to/A1 /path/to/A2
但是作为
/path/to/A1\ /path/to/A2
因此,ribotagger 脚本将其解释为一个长参数,导致立即停止。
第二个问题,我希望每个并行创建的脚本实例的文件夹参数都不同。 我想到了类似的东西
-out $exitdir/$(echo {1} | cut -d "/" -f 4)/ribotag.{2}
但是,看起来 {1} 在 $(stuff) 中无法识别 该脚本需要一个输出参数才能运行。
【问题讨论】:
标签: bash parallel-processing gnu-parallel