36 join跟paste命令的几点总结
36 join和paste命令的几点总结
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
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
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
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
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
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