shell常用命令—join命令

1. 连接

内连接:将两个文件中每列第一个字符相同的行合并(忽略不匹配的行)
全连接(显示左边和右边所有记录)

join file1 file2			#内连接:将两个文件中每列第一个字符相同的行合并
join -a1 file1 file2		#显示左边文件中的所有记录(右边文件中没有匹配的不显示)
join -a2 file1 file2		#显示右边文件中的所有记录(左边文件中没有匹配的不显示)
join -a1 -a2 file1 file2	#全连接(显示左边和右边所有记录)

例1:
在这里插入图片描述

例2:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

例3:
在这里插入图片描述

例4:
在这里插入图片描述

例5:
在这里插入图片描述

2. 指定输出字段

-o:指定输出字段

join -o 1.1 file1 file2		#指定输出第一个文件的第一个字段(必须是两个文件都匹配到的字段,没有匹配到的不显示)

指定输出多个字段:
join -o 1.1 2.2 file1 file2 #指定输出第一个文件的第一个字段和第二个文件的第二个字段

例1:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

例2:
在这里插入图片描述
对比:
在这里插入图片描述
例3:
在这里插入图片描述

在这里插入图片描述

3. 指定分隔符

-t:指定分隔符

join -t : file1 file2		 #以:为分隔符连接
join -t ':' file3 file4	     #以:为分隔符连接

例:
在这里插入图片描述

4. 不匹配的行输出

-v 1:不匹配的行输出

join -v 1 -a1 -a2 file1 file2

注意:-v后面的1不能省略

例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了145 篇原创文章 · 获赞 17 · 访问量 8666

猜你喜欢

转载自blog.csdn.net/weixin_45775963/article/details/104362085