cat命令可高效合并文件,支持覆盖(>)、追加(>>)、通配符、分隔标记及大文件安全处理。

直接用 cat 命令就能快速完成,核心是“顺序读取 + 重定向写入”,不需安装额外工具,也不占内存。
用 > 覆盖生成新文件
适合一次性合并、保留原始文件、目标文件名明确的场景。
- 命令格式:
cat file1.txt file2.txt file3.txt > merged.txt - 按你列出的顺序逐个读取,内容连贯写入
merged.txt - 若
merged.txt已存在,原内容会被清空重写
用 >> 追加到已有文件
适合分批处理、日志轮转或持续收集内容。
- 先确保目标文件存在(如不存在,可
touch output.txt创建) - 然后执行:
cat part1.txt >> output.txtcat part2.txt >> output.txt - 每次都在末尾添加,不会破坏已有内容
用通配符批量合并
省去手动列文件名,尤其适合 log_01.txt、data_*.csv 这类命名规律的文件。
- 基础写法:
cat *.txt > all.txt - 注意:
*展开按字典序,file10.txt会排在file2.txt前面 - 要按数字顺序(自然序),改用:
cat $(ls -v *.txt) > all_sorted.txt
加简单分隔,方便区分来源cat 默认不加任何标记,多个文件拼一起容易混淆。可用 shell 循环控制:
for f in part_*.txt; do echo "=== $f ===" cat "$f" echo "" done > combined.txt
这样每个文件前有标题,后面跟一个空行,结构清晰易读。
大数量小文件时防报错
如果待合并文件上千个(比如 chunk_0001.txt 到 chunk_9999.txt),直接 cat * 可能触发 Argument list too long 错误。此时换用:find . -name "chunk_*.txt" -print0 | xargs -0 cat > full.txt-print0 和 -0 配合,安全处理含空格或特殊字符的路径,也绕过命令行长度限制。


















