Linux提供五种文件合并方法:一、cat命令顺序纵向拼接;二、tee命令分步追加并实时查看;三、awk命令插入分隔标识保留来源信息;四、paste命令横向并排合并;五、find与xargs批量处理多目录文件。

如果您需要将多个文本文件的内容整合到单个文件中,Linux 提供了多种命令行工具来实现这一操作。以下是几种常用且互不依赖的合并方法:
一、使用 cat 命令合并文件
cat 命令是最直接的方式,它按顺序读取指定文件并输出到标准输出或重定向至目标文件,适用于纯文本且无需修改内容格式的场景。
1、打开终端,进入包含待合并文件的目录。
2、执行命令:cat file1.txt file2.txt file3.txt > merged.txt
3、确认生成结果:ls -l merged.txt
4、查看合并后内容:cat merged.txt
二、使用 tee 命令追加合并
tee 命令可将标准输入同时写入文件和终端,适合分步合并或需实时查看中间结果的情形,支持追加模式避免覆盖已有内容。
1、先清空或新建目标文件:> merged.txt
2、依次追加各文件内容:cat file1.txt | tee -a merged.txt
3、继续追加下一个文件:cat file2.txt | tee -a merged.txt
4、重复步骤直至全部加入,最终文件保持原有换行结构。
三、使用 awk 合并并添加分隔标识
awk 可在合并过程中插入自定义分隔符(如文件名或空行),便于后续识别各源文件边界,适用于需保留来源信息的归档场景。
1、执行带文件名标记的合并:awk 'FNR==1{print "\n=== " FILENAME " ==="} 1' file1.txt file2.txt > merged.txt
2、验证分隔效果:head -n 10 merged.txt
3、若需空行分隔,将命令中的 "\n=== " FILENAME " ===" 替换为 "\n"。
四、使用 paste 命令横向合并
paste 命令默认以制表符连接对应行,适用于多文件行数一致、需并排对比或组合字段的场景,不同于纵向拼接。
1、确保所有文件行数相同,否则缺失行位置显示为空。
2、执行横向合并:paste file1.txt file2.txt file3.txt > merged.txt
3、指定分隔符(例如逗号):paste -d',' file1.txt file2.txt > merged.csv
4、检查输出格式:head merged.csv
五、使用 find 与 xargs 批量合并匹配文件
当待合并文件数量较多或分散在子目录中时,find 可定位符合条件的文件,xargs 将其批量传递给 cat 处理,提升效率。
1、在当前目录及子目录中查找所有 .log 文件:find . -name "*.log" -type f
2、将查找到的文件合并为 single.log:find . -name "*.log" -type f -print0 | xargs -0 cat > single.log
3、确认合并文件大小:wc -l single.log
4、注意:-print0 与 -0 配合可安全处理含空格或特殊字符的路径。









