功能说明:将两个文件中,指定栏位内容相同的行连接起来。
语 法:join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
补充说明:找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
参 数:
-a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。
-e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。
-i或--igore-case 比较栏位内容时,忽略大小写的差异。
-o<格式> 按照指定的格式来显示结果。
-t<字符> 使用栏位的分隔字符。
-v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。
-1<栏位> 连接[文件1]指定的栏位。
-2<栏位> 连接[文件2]指定的栏位。
--help 显示帮助。
--version 显示版本信息。
~~~~~~~~~~~~~~~~~~~
经常使用这个命令。但老是搞忘一些参数,特此记录
join类似 db里面的join方法,同样有left join right join inner join等
指定参数-a 可以指定join的方式。 -a1表示 显示第一个文件中不匹配的行,即为left join
-a2 表示 显示第二个文件中不匹配的行,即为right join
-o 1.1 2.1 -o是输出参数,1.1表示输出第一个文件的第一列;2.1表示输出第二个文件的第一列
-t "|" 是分隔符参数, 表示指定|作为域分隔符
-j 1.1 2.1 -j是表示连接的字段参数, 这里表示第一个文件的第一列和第二个文件的第一列关联
~~~~~~~~~~~~~
使用示例:
$ cat employee.txt 100 Jason Smith 200 John Doe 300 Sanjay Gupta 400 Ashok Sharma $ cat bonus.txt 100 $5,000 200 $500 300 $3,000 400 $1,250 $ join employee.txt bonus.txt 100 Jason Smith $5,000 200 John Doe $500 300 Sanjay Gupta $3,000 400 Ashok Sharma $1,250