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不能省略
例: