在 Linux 中合并两个或多个文件的最快方法是什么?

在 Linux 中合并两个或多个文件的最快方法是什么?

我想在 Linux 中合并两个或多个文件,因此我使用以下命令:

cat small_file LARGE_File LARGER_FILE > SUM_OF_FILES

但是运行速度非常慢。

有谁知道一个可以在最短时间内合并文件的Linux工具吗?

答案1

您可以尝试以下变体命令, 例如:

dd if=small_file bs=4k of=SUM_OF_FILES

dd if=LARGE_FILE bs=4k of=SUM_OF_FILES oflag=append

dd if=LARGER_FILE bs=4k of=SUM_OF_FILES oflag=append

答案2

我发现 mmv(批量移动和重命名 - 使用通配符模式移动、复制、附加或链接多个文件。)来自有用的 bash 参考。因此你可以这样做:

cp small_file SUM_OF_FILES
mmv -a LARGE_File SUM_OF_FILES
mmv -a LARGER_FILE SUM_OF_FILES

(注意:mmv 未默认安装,请使用sudo apt-get install mmv

答案3

或许

cat small_file >> LARGE_File

会按照你的意愿吗?如果你需要 LARGE_FILE 保持不变

cp LARGE_File SUM_OF_FILES
cat small_file >> SUM_OF_FILES

更好,但这只会比原始代码稍微快一点。

答案4

dd if=small_file bs=4k of=SUM_OF_FILES
dd if=LARGE_FILE bs=4k of=SUM_OF_FILES oflag=append conv=notrunc
dd if=LARGER_FILE bs=4k of=SUM_OF_FILES oflag=append conv=notrunc

Red Hat 7 上需要 conv=notrunc。我无法评论其他版本的 Linux。

资料来源:Gareth 对此问题的回答以及 conv=notrunc 对“如何通过 dd 将数据附加到文件中”的回答

相关内容