我想在 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 将数据附加到文件中”的回答