如何让GNU平行分割多个输入文件(How to make gnu-parallel split mu

2019-10-18 14:46发布

我有一个脚本这需要三个参数和运行这样的:

myscript.sh input1.fa input2.fa out.txt

该脚本读取每一行从input1.fainput2.fa ,做一些对比,并将结果写入到out.txt 。 两个输入必须有相同数量的线,并out.txt也会有相同的行数的脚本完成后。

是否有可能并行GNU此使用parallel

我不在乎,输出具有与输入的顺序不同,但我确实需要比较i的日线input1.fai日线input2.fa 。 此外,它是可以接受的,如果我得到多输出文件(如output{#} ),而不是一个-我就cat在一起。

我发现这个话题,但得到的答复是不完全是我想要的。 我知道我可以split两个输入文件,并在使用中对平行处理它们xargs ,但想如果可以做到这一条线...

Answer 1:

如果你可以改变myscript.sh,所以它从管道读取和写入,你可以做一个管道:

paste input1.fa input2.fa | parallel --pipe myscript.sh > out.txt

因此,在MyScript可将需要从标准输入和分裂,以阅读TAB从输入1和输入2获得输入。



文章来源: How to make gnu-parallel split multiple input files