join
警告
本文最后更新于 2023-10-22,文中内容可能已过时。
join
Linux join 命令用于将两个文件中,指定栏位内容相同的行连接起来。找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
有点像数据库中的联表查询。首先就要确定哪个字段等于哪个字段
|
|
-
-a<1或2>
:除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。 -
-v<1或2>
:跟-a
相同,但是只显示文件中没有相同栏位的行。 -
-i
或--igore-case
:比较栏位内容时,忽略大小写的差异。 -
-t<字符>
:使用栏位的分隔字符。默认是tab
,跟sort
的-t
,cut
的-d
用法相同 -
-1<栏位>
:连接[文件 1]指定的栏位。 -
-2<栏位>
:连接[文件 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
会提示你文件二需要排序,同时只显示一部分共同行。