join

join

Linux join 命令用于将两个文件中,指定栏位内容相同的行连接起来。找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。

有点像数据库中的联表查询。首先就要确定哪个字段等于哪个字段

join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]

简单实践:

准备文件 jointest0.txt

jointest1.txt

join -t ':' -1 2 jointest0.txt  -2 2 jointest1.txt 或者

join -t ':' -1 2  -2 2 jointest0.txt jointest1.txt,结果是:

结果列的顺序是:共同列 + 第一个文件除共同列以外的列 + 第二个文件除共同列以外的列

注意:共同列的数据顺序也要相同,比如文件一的共同列有三行,分别是:

共同列
1
2
3

文件二的共同列是:

共同列
3
2
1

此时,join 会提示你文件二需要排序,同时只显示一部分共同行。