Linux Shell join 命令实战指南
join 是 Linux 下处理文本文件的利器,它的主要功能是将两个文件中指定字段相同的行连接起来。简单来说,就是根据共有的某一列,把对应的行拼接成一行。
注意:参与
join的两个文件必须预先按照连接字段进行排序,否则结果可能不符合预期。
基本语法
join [选项] file1 file2
默认情况下,join 以空白字符(空格或 Tab)作为分隔符,并以第一个字段作为匹配依据。
常用选项详解
| 选项 | 说明 |
|---|---|
-a FILENUM | 除了显示匹配的行,还输出指定序号(1 或 2)文件中未匹配的行 |
-e EMPTY | 将未匹配到的字段用指定字符填充 |
-i | 忽略大小写差异 |
-j FIELD | 等同于 -1 FIELD -2 FIELD,指定两文件共同的匹配字段 |
-o FORMAT | 自定义输出格式,如 -o 1.1,2.1 |
-t CHAR | 指定输入输出的分隔符,默认为空白 |
-v FILENUM | 仅显示指定文件中未匹配的行 |
-1 FIELD | 指定 file1 中用于匹配的字段 |
-2 FIELD | 指定 file2 中用于匹配的字段 |
--help | 打印帮助信息 |
实战示例
假设我们有以下两个文件:
file1.txt
aa 1 2
bb 2 3
cc 4 6
dd 3 3
file2.txt
aa 2 1
bb 8 2
ff 2 4
cc 4 4
dd 5 5
1. 基础合并
直接运行 join file1.txt file2.txt,默认按第一列匹配:
file1.txt file2.txt

