linux多文件合并命令
linux多文件合并命令详细介绍
在 Linux 中合并多个文件,可根据需求选择以下命令:
1.
按顺序合并文本文件(纵向拼接)
命令:cat file1 file2 ... > merged.txt
说明:将多个文件内容按顺序连接,结果输出到 merged.txt(> 会覆盖文件,>> 追加)。
示例:
bash
chapter1.txt chapter2.txt novel.txt
2.
按列合并(横向拼接)
命令:paste file1 file2 ... > merged.txt
说明:默认按制表符 \t 分隔,适合列对齐的文件(如 CSV 表头)。
示例:
bash
scores.csv names.csv report.csv
- 加参数
-d ","可指定逗号分隔。
3.
基于共同字段合并(类似 SQL JOIN)
命令:join file1 file2 -t 分隔符 -1 列 -2 列
说明:需文件按指定列排序,适合关联数据合并。
示例:
bash
user.txt order.txt user_order.csv
4.
合并二进制文件(如图片、压缩包)
命令:cat file1.bin file2.bin > merged.bin
注意:仅适用于无结构的二进制文件(如分片下载的文件),不可随意合并程序或文档。
5.
按行号合并(忽略空行)
命令:sed -n 'p;N' file1 file2
示例:
bash
file1.txt file2.txt
场景选择建议:
| 场景 | 推荐命令 | 特点 |
|---|---|---|
| 纯文本顺序合并 | cat |
简单高效,支持大文件 |
| 表格列合并 | paste |
横向拼接,需列数一致 |
| 关联数据合并 | join |
基于键值,需文件排序 |
| 二进制文件合并 | cat |
谨慎使用,仅用于分片文件 |
| 奇偶行交替合并 | sed/awk |
灵活处理非规则结构 |
提示:合并前建议用 head/tail 预览文件格式,避免乱码或结构错乱。