gnu parallel --pipe产生空的输出文件

时间:2018-08-03 20:29:37

标签: python gnu-parallel

我正在努力尝试并行运行gnu。我有一个shell脚本,使用不同的输入参数调用Python程序数千次:

python /path/to/program/run.py A_02_01 input.fasta > /path/to/output/out.txt
python /path/to/program/run.py A_02_02 input.fasta > /path/to/output/out.txt

我尝试像这样使用gnu parallel:

cat iedb_classi_call.sh  | parallel  --recstart 'python' --recend '\n' --pipe   bash

但是我所有的输出文件都是空的。我正在努力找出原因。我没有从gnu parallel得到错误。

在添加recstart和recend选项之前,我正在获取一些Python调用的非空输出文件,但是其他程序调用未执行,并且出现如下错误:

run.py: error: incorrect number of arguments
bash: line 422: 01_ input.fasta: command not found
Usage: run.py allele fasta_file

这让我觉得并行在读取未正确分隔的块中,我向并行添加了--recstart / --recend参数

我正在使用gnu并行版本20180722

1 个答案:

答案 0 :(得分:0)

(这应该是注释,因为它不能回答实际的问题,但是格式化代码效果不佳)。

如果这些行是这样的:

python /path/to/program/run.py A_02_01 input.fasta > /path/to/output/out.txt
python /path/to/program/run.py A_02_02 input.fasta > /path/to/output/out.txt

那么您也许可以做到:

cat file-with-A_names |
  parallel --results /path/{}.out python /path/to/program/run.py {} input.fasta >/dev/null

输出将存储在/path/A....out中。