0

我有 120 对要连接的文件。我在制表符分隔的文件中有一对文件和建议的合并文件名,如下所示

Filelist.txt

/filepath/1_first.fasta /filepath/1_second.fasta > /filepath/1_merged.fasta

/filepath/2_first.fasta /filepath/2_second.fasta > /filepath/2_merged.fasta

/filepath/3_first.fasta /filepath/3_second.fasta > /filepath/3_merged.fasta 

/filepath/4_first.fasta /filepath/4_second.fasta > /filepath/4_merged.fasta

我在尝试:

$cat Filelist.txt | perl -ne 'chomp;system("cat $_;")'

以逐行处理 Filelist.txt 并在第一行应该是的行上使用 cat 命令的想法...

/filepath/1_first.fasta /filepath/1_second.fasta > /filepath/1_merged.fasta

如果我在 Filelist.txt 中只有一对和一行,它工作正常,但多行我只是得到..

/filepath/2_first.fasta: No such file or directory

$

任何线索为什么这可能不适用于每一行?或者另一种方法来做到这一点?

谢谢

4

2 回答 2

1

我建议这样做:

sed -e 's/^/cat /' Filelist.txt | bash

假设您Filelist.txt的格式确实是这种方式(即实际上包含如图所示的重定向)。也许在没有| bash部件的情况下先尝试上面的方法并检查输出以确保它看起来像您想要运行的正确命令。

于 2013-05-23T15:02:52.123 回答
0

尝试这个:

cat * > merged_file

这将 CAT 目录中的所有文件,并将输出输出到 merge_file。

于 2013-05-23T12:10:39.560 回答