Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何使GNU并行使用记录分隔符从多个文件获取输入_Linux_Multithreading_Unix_Parallel Processing_Gnu - Fatal编程技术网

Linux 如何使GNU并行使用记录分隔符从多个文件获取输入

Linux 如何使GNU并行使用记录分隔符从多个文件获取输入,linux,multithreading,unix,parallel-processing,gnu,Linux,Multithreading,Unix,Parallel Processing,Gnu,我有一个可以通过以下方式执行的代码: $ ./mycode [param1] [param2] [input1-fasta] [input2-fasta] [output-file] 例如,要执行它: $ ./mycode 4 4 input.fasta input2.fasta output.txt 通常,代码会对所有序列进行比较 Fasta文件如下所示: >Seq_1 TTTGTTTGCTTCATATTGTAATTAATTTTAAAGAAA >Seq_2 CTGTGACA

我有一个可以通过以下方式执行的代码:

$ ./mycode [param1] [param2] [input1-fasta] [input2-fasta] [output-file]
例如,要执行它:

 $ ./mycode 4 4 input.fasta input2.fasta output.txt
通常,代码会对所有序列进行比较

Fasta文件如下所示:

>Seq_1 
TTTGTTTGCTTCATATTGTAATTAATTTTAAAGAAA
>Seq_2
CTGTGACAAATTGCCCTTAACCCTGTGACAAATTGC
请注意,两个输入的序列数可能不同

我想做的是使用多核运行该代码命令,并使用。 希望它能跑得更快

所以我尝试了这个命令:

$ parallel --pipe --recstart '>' "./mycode 4 4 input.fasta input2.fasta output.txt"
但它没有执行,而是给了我这个:

parallel: Warning: Input is read from the terminal. Only experts do this on purpose. Press CTRL-D to exit.

正确的方法是什么?

不太清楚您期望这样做会产生什么效果:

parallel --pipe --recstart '>' "./mycode 4 4 input.fasta input2.fasta output.txt"
如果你想要全部对全部,我建议你把大文件分成块,然后用小文件测试每个块。比如:

cat big.fasta | parallel --pipe --recstart '>' "./mycode 4 4 small.fasta - output{#}.txt"
要使用--pipe,您的程序必须能够从标准输入(stdin)读取数据,因此“-”。如果无法尝试bash的重定向魔法:

cat big.fasta | parallel --pipe --recstart '>' "./mycode 4 4 small.fasta <(cat -) output{#}.txt"
cat big.fasta | parallel--pipe--recstart'>'”/mycode 4 4 small.fasta