join

join默认比较文件1和2的第一个域(默认比较$1是否相同进而连接在一起)    join前需要确保两个文件sort

-a -v     a1 显示第一个文件和第二个文件相连接而且显示第一个文件中有第二个文件没有的部分     v1 只显示未连接的第一个文件的部分

zzx@zzx120:~/zzx1/test/1/2$ cat a      
100 Jason Smith  
200 John Doe  
300 Sanjay Gupta  
400 Ashok Sharma
800 zzx
zzx@zzx120:~/zzx1/test/1/2$ cat b      
100 $5,000  
200 $500  
300 $3,000  
400 $1,250
500 $1,400
zzx@zzx120:~/zzx1/test/1/2$ join a b
100 Jason Smith  $5,000
200 John Doe  $500
300 Sanjay Gupta  $3,000
400 Ashok Sharma $1,250
zzx@zzx120:~/zzx1/test/1/2$ join -a1 a b
100 Jason Smith  $5,000
200 John Doe  $500
300 Sanjay Gupta  $3,000
400 Ashok Sharma $1,250
800 zzx
zzx@zzx120:~/zzx1/test/1/2$ join -v1 a b
800 zzx
zzx@zzx120:~/zzx1/test/1/2$ join -a2 a b 
100 Jason Smith  $5,000
200 John Doe  $500
300 Sanjay Gupta  $3,000
400 Ashok Sharma $1,250
500 $1,400
zzx@zzx120:~/zzx1/test/1/2$ join -v2 a b
500 $1,400

 

-o   指定显示的格式 

zzx@zzx120:~/zzx1/test/1/2$ join -o 1.1 2.2 1.2 a b
100 $5,000 Jason
200 $500 John
300 $3,000 Sanjay
400 $1,250 Ashok

zzx@zzx120:~/zzx1/test/1/2$ join -o 2.2 1.2 a b   
$5,000 Jason
$500 John
$3,000 Sanjay
$1,250 Ashok

zzx@zzx120:~/zzx1/test/1/2$ cat 1   #没有sort
jone:B
zzx:a
hxm:c
zzx@zzx120:~/zzx1/test/1/2$ cat 2
perfect:A:90
good:B:80
soso:C:60

-1 -2  分别指定两个文件用来比较的域    不用默认的第一个域来比较

zzx@zzx120:~/zzx1/test/1/2$ join -i -t: -1 2 -2 2  1 2
join: 1:2: is not sorted: zzx:a
B:jone:good:80
c:hxm:soso:60

zzx@zzx120:~/zzx1/test/1/2$ sort -k2 -t: 1 >3
zzx@zzx120:~/zzx1/test/1/2$ join -i -t: -1 2 -2 2  3 2
a:zzx:perfect:90
B:jone:good:80
c:hxm:soso:60

zzx@zzx120:~/zzx1/test/1/2$ join -i -t: -1 2 -2 2 -o 2.3 1.1 2.2 2.1 3 2
90:zzx:A:perfect
80:jone:B:good
60:hxm:C:soso

zzx@zzx120:~/zzx1/test/1/2$ join -i -t: -1 2 -2 2 -o 2.3 1.1 2.2 2.1 3 2|sort -t: -k2
60:hxm:C:soso
80:jone:B:good
90:zzx:A:perfect

zzx@zzx120:~/zzx1/test/1/2$ join -i -t: -1 2 -2 2 -o 2.3 1.1 2.2 2.1 3 2|sort -t: -k2 -r
90:zzx:A:perfect
80:jone:B:good
60:hxm:C:soso

转载于:https://www.cnblogs.com/hanxing/p/4239937.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值