测试文本内容
# cat -n name1.txt
1 name1 alvin1
2 name2 alvin2
3 name3 alvin3
4 name4 alvin4
# cat -n name2.txt
1 name1 100
2 name2 101
3 name3 102
4 cccccccccccccccc
(1) join
显示匹配的行,并将值合并(ccc和name4不匹配所以不显示) # join name1.txt name2.txt name1 alvin1 100 name2 alvin2 101 name3 alvin3 102
(2) -a
用第1个文件的内容去匹配,若匹配则显示匹配的行,并合并其值;不匹配的行也显示,但其值为空 # join -a1 name1.txt name2.txt name1 alvin1 100 name2 alvin2 101 name3 alvin3 102 name4 alvin4
用第2个文件的内容去匹配,若匹配则显示匹配的行,并合并其值;不匹配的行也显示,但其值为空 # join -a2 name1.txt name2.txt name1 alvin1 100 name2 alvin2 101 name3 alvin3 102 cccccccccccccccc
两个文件同时匹配,若匹配则显示匹配的行,并合并其值;同时将所有不匹配的行也都显示出来 # join -a1 name1.txt -a2 name2.txt name1 alvin1 100 name2 alvin2 101 name3 alvin3 102 cccccccccccccccc name4 alvin4
(3) -o
对于匹配的行,输出"第1个文件的第2部分,第2个文件的第2部分"的部分, # join -o 1.2 2.2 name1.txt name2.txt alvin1 100 alvin2 101 alvin3 102
# join -o 1.1 2.1 name1.txt name2.txt name1 name1 name2 name2 name3 name3
原文:http://www.cnblogs.com/snsdzjlz320/p/5693954.html