无法使用命令行cat~9000文件

时间:2016-05-08 05:57:19

标签: cat

我正在尝试将~9000 fasta文件放入一个更大的文件中。所有文件都在一个子文件夹中。我不断得到参数列表是长错误。

这是其中一个文件的示例名称 efetch.fcgi?db=nuccore&id=CL640905.1&rettype=fasta&retmode=text

它们被计算机视为文档类型文件。

2 个答案:

答案 0 :(得分:1)

由于您对命令行大小有限制,因此无法使用cat * > concatfile。所以一次拿一个并附加:

ls | while read; do cat "$REPLY" >> concatfile; done

(确保预先concatfile不存在。)

编辑:正如用户6292850正确指出的那样,我可能会过度思考它。如果你的文件没有太奇怪的名字,这就足够了:

ls | xargs cat > concatfile

(但是,例如,其中包含空格的文件会将其炸毁)

答案 1 :(得分:0)

您可以在命令行上放置多少个参数。 您可以使用for循环来处理此问题:

while read file;do
    cat "${file}" >> path/to/output_folder;
done < <(find path/to/output_folder -maxdepth 1 -type f -print)

这将绕过带有太多参数的扩展glob的问题。