我有大约30 K文件。我想将它们合并为一个。我使用了猫,但我遇到了这个错误。
cat *.n3 > merged.n3
-bash: /usr/bin/xargs: Argument list too long
如何增加使用" CAT"命令的限制?如果有任何迭代方法合并大量文件,请帮助我。
这是一种安全的方法,而无需find
:
printf '%s ' *.n3 | xargs -0 cat > merged.txt
(我还选择merged.txt
作为输出文件,因为@michaeldautermann强烈建议;后来重命名为merged.n3
)。
注意:此工作的原因是:
-
printf
是一个bash shell 内置,其命令行不受传递给 external 可执行文件的命令行的长度限制。 -
xargs
对于分区输入参数(通过 pipe通过,因此也不受命令行长度限制)很聪明,以避免长度限制;换句话说:xargs
在不陷入极限的情况下进行了尽可能少的呼叫。 - 使用