join命令-连接两个具有匹配字段的文件

时间:2019-04-29 03:17:27  来源:igfitidea点击:

使用join命令将具有匹配字段的两个文件连接在一起。

LINUX连接命令

join命令 - Linux连接命令示例

join命令用于联接到公共字段上的文件。join命令的基本语法如下:

连接两个文件的示例。

已创建两个文件,分别为file1和file2。我们将基于第一个字段将两个文件连接在一起。

john@sles01:~/john_split> cat file1
1 Chelsea
2 Liverpool
3 Manchester United
4 Newcastle United
5 West Bromwich Albion

john@sles01:~/john_split> cat file2
1 Stamford Bridge
2 Anfield
3 Old Trafford
4 St James Park
5 The Hawthorns

john@sles01:~/john_split> join file1 file2
1 Chelsea  Stamford Bridge
2 Liverpool  Anfield
3 Manchester United Old Trafford
4 Newcastle United St James Park
5 West Bromwich Albion The Hawthorns

从上面的输出中,我们可以看到这两个文件是根据第一个字段连接在一起的。

验证文件具有匹配的字段

要验证两个文件都具有匹​​配的字段条目,我们可以运行join --checker-order选项:

john@sles01:~/john_split> join --check-order file1 file2
1 Chelsea  Stamford Bridge
2 Liverpool  Anfield
3 Manchester United Old Trafford
4 Newcastle United St James Park
5 West Bromwich Albion The Hawthorns

由于两个文件的第一个参数都匹配,因此我们不会收到任何错误。如果我们按照以下内容修改file1的内容,现在应该从--check-order选项中看到一个错误:

john@sles01:~/john_split> cat file1
1 Chelsea
2 Liverpool
3 Manchester United
5 Newcastle United
4 West Bromwich Albion

john@sles01:~/john_split> cat file2
1 Stamford Bridge
2 Anfield
3 Old Trafford
4 St James Park
5 The Hawthorns

john@sles01:~/john_split> join --check-order file1 file2
1 Chelsea  Stamford Bridge
2 Liverpool  Anfield
3 Manchester United Old Trafford
join: file 1 is not in sorted order

我们还可以使用-v选项来检查和仅显示未配对的行:

john@sles01:~/john_split> join -v1 file1 file2
join: file 1 is not in sorted order
4 West Bromwich Albion