36 join和paste命令的几点总结



1、join命令只能对排序之后的文件进行操作

2、使用join命令的时候必须使用-t参数
 
3、join命令对两个文件进行操作时,如果两个文件的域不相同,则只会连接具有相同域的部分,可以用-a1和-a2参数来分别i显示第一个文件和第二个文件中未被连接的部分,如下两个文件(score和otherscore)进行操作,可以看到没有共同域的部分没有被连接

score文件:
ZhangSan:Chinese:80:Math:91:English:100
LiSi:Chinese:80:Math:71:English:85
WangWu:Chinese:60:Math:71:English:100
ZhaoLiu:Chinese:56:Math:41:English:74
SunQi:Chinese:100:Math:91:English:100
ZhaoLiu:Chinese:56:Math:41:English:74

otherscore文件:
ZhangSan:Physical:80:Chemistry:93:Biologica:88
LiSi:Physical:65:Chemistry:72:Biologica:87
WangWu:Physical:67:Chemistry:75:Biologica:99
ZhaoLiu:Physical:51:Chemistry:77:Biologica:94

alloy@raspberrypi:~/linuxshell/chapter5$ join -a1 -t: score otherscore
ZhangSan:Chinese:80:Math:91:English:100:Physical:80:Chemistry:93:Biologica:88
LiSi:Chinese:80:Math:71:English:85:Physical:65:Chemistry:72:Biologica:87
WangWu:Chinese:60:Math:71:English:100:Physical:67:Chemistry:75:Biologica:99
ZhaoLiu:Chinese:56:Math:41:English:74:Physical:51:Chemistry:77:Biologica:94
SunQi:Chinese:100:Math:91:English:100
ZhaoLiu:Chinese:56:Math:41:English:74

alloy@raspberrypi:~/linuxshell/chapter5$ join -a2 -t: score otherscore
ZhangSan:Chinese:80:Math:91:English:100:Physical:80:Chemistry:93:Biologica:88
LiSi:Chinese:80:Math:71:English:85:Physical:65:Chemistry:72:Biologica:87
WangWu:Chinese:60:Math:71:English:100:Physical:67:Chemistry:75:Biologica:99
ZhaoLiu:Chinese:56:Math:41:English:74:Physical:51:Chemistry:77:Biologica:94

4、如果需要将join的将输出写到文件可以用>重定向操作,其没有输出命令参数

5、join默认的连接域是1,如果需要使用其他域可以使用-1和-2参数来指定对应的域,可以看到在score和otherscore中域2么有可以连接的域

alloy@raspberrypi:~/linuxshell/chapter5$ join -a1 -a2 -1 2 -2 2 -t: score otherscore
Chinese:ZhangSan:80:Math:91:English:100
Chinese:LiSi:80:Math:71:English:85
Chinese:WangWu:60:Math:71:English:100
Chinese:ZhaoLiu:56:Math:41:English:74
Chinese:SunQi:100:Math:91:English:100
Chinese:ZhaoLiu:56:Math:41:English:74
Physical:ZhangSan:80:Chemistry:93:Biologica:88
Physical:LiSi:65:Chemistry:72:Biologica:87
Physical:WangWu:67:Chemistry:75:Biologica:99
Physical:ZhaoLiu:51:Chemistry:77:Biologica:94

6、paste的连接顺序和文件名称相关,默认使用域1作为连接选项,没有被连接的项会被写到最后,如果想把paste结果写到文件同样可以使用重定向

alloy@raspberrypi:~/linuxshell/chapter5$ paste -d: score otherscore
ZhangSan:Chinese:80:Math:91:English:100:ZhangSan:Physical:80:Chemistry:93:Biologica:88
LiSi:Chinese:80:Math:71:English:85:LiSi:Physical:65:Chemistry:72:Biologica:87
WangWu:Chinese:60:Math:71:English:100:WangWu:Physical:67:Chemistry:75:Biologica:99
ZhaoLiu:Chinese:56:Math:41:English:74:ZhaoLiu:Physical:51:Chemistry:77:Biologica:94
SunQi:Chinese:100:Math:91:English:100:
ZhaoLiu:Chinese:56:Math:41:English:74:

alloy@raspberrypi:~/linuxshell/chapter5$ paste -d: otherscore score
ZhangSan:Physical:80:Chemistry:93:Biologica:88:ZhangSan:Chinese:80:Math:91:English:100
LiSi:Physical:65:Chemistry:72:Biologica:87:LiSi:Chinese:80:Math:71:English:85
WangWu:Physical:67:Chemistry:75:Biologica:99:WangWu:Chinese:60:Math:71:English:100
ZhaoLiu:Physical:51:Chemistry:77:Biologica:94:ZhaoLiu:Chinese:56:Math:41:English:74
:SunQi:Chinese:100:Math:91:English:100
:ZhaoLiu:Chinese:56:Math:41:English:74



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值