温馨提示×

怎样合并Linux多个文件

小樊
49
2026-08-25 04:29:32
栏目: 智能运维

在 Linux 中,合并多个文件的方法取决于文件类型合并方式。下面按常见场景给你总结,基本都可直接用。


一、普通文本文件合并(最常见)

✅ 1. 使用 cat(最推荐)

cat file1.txt file2.txt file3.txt > merged.txt

如果文件很多:

cat *.txt > merged.txt

如果是按顺序合并多个日志、配置、代码文件,cat 是最合适的。


✅ 2. 合并时保留顺序(逐行追加)

cat file1.txt >> file2.txt

⚠️ 注意:>> 是追加,> 是覆盖。


二、按行合并并去重

✅ 3. 合并 + 去重

cat file1.txt file2.txt | sort -u > merged.txt

适合:

  • 合并 IP 列表
  • 去重配置
  • 合并关键词

三、CSV / 表格文件合并

✅ 4. 简单拼接(适合结构一致)

cat a.csv b.csv > merged.csv

✅ 5. 只保留一个表头(推荐)

head -1 a.csv > merged.csv
tail -n +2 -q *.csv >> merged.csv

四、按列合并(横向合并)

✅ 6. 使用 paste

paste file1.txt file2.txt > merged.txt

示例:

file1:
a
b

file2:
1
2

结果:
a   1
b   2

指定分隔符:

paste -d',' file1.txt file2.txt

五、二进制文件合并(如日志、数据文件)

✅ 7. 使用 cat

cat part1.bin part2.bin > full.bin

⚠️ 不要用于压缩包、图片等需要特殊工具的情况。


六、压缩文件合并

✅ 8. tar 合并多个文件

tar -cvf all.tar file1 file2 file3

✅ 9. 合并多个 tar 包

tar -A -f target.tar source1.tar source2.tar

七、大文件 / 分卷合并

✅ 10. 合并分卷文件

cat file.part* > file

例如:

cat data.tar.gz.part* > data.tar.gz

八、常见错误提醒

❌ 合并二进制文件用 paste
❌ 覆盖原文件用 >
❌ 忘记编码(Windows → Linux 可用 dos2unix


九、推荐速查表

场景 命令
文本合并 cat a b > c
去重合并 `cat a b
横向合并 paste a b
CSV 去表头 tail -n +2
分卷合并 cat part* > file

如果你能告诉我:

  • 文本 / CSV / 日志 / 二进制
  • 是否要 去重 / 排序 / 保留表头
  • 文件大概多大

我可以给你一条最合适、最安全的命令。

0