1

我有一个脚本,它接受三个参数并像这样运行:

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

input1.fa该脚本从和中各读取一行input2.fa,进行一些比较,然后将结果写入out.txt。这两个输入需要具有相同的行数,并且out.txt在脚本完成后也将具有相同的行数。

是否可以使用 GNU 并行化parallel

我不在乎输出的顺序与输入的顺序不同,但我确实需要将 的i第 行input1.fa与 的i第 行进行比较input2.fa。此外,如果我得到多个输出文件(如output{#})而不是一个,这是可以接受的——我会把cat它们放在一起。

我找到了这个话题,但答案并不是我想要的。我知道我可以split使用两个输入文件并成对并行处理它们xargs,但如果可能的话,我想在一行中执行此操作...

4

1 回答 1

0

如果您可以更改 myscript.sh,使其从管道读取并写入管道,您可以执行以下操作:

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

因此,在 myscript 中,您需要从 STDIN 读取并在 TAB 上拆分以从 input1 和 input2 获取输入。

于 2013-09-04T23:23:44.890 回答