加入两个文件的第一列

时间:2013-03-04 20:28:42

标签: linux unix join awk

如何通过每个文件的第一列加入两个文件?

file1:

116
116
116
116
116
117
117
117
117
117

file2的:

1   37.8378378378378
2   30.5009605438156
3   35.4106079490375
4   25.6565656565657
.....
.....
116 49.4073275862069
117 25.8182578688696
118 36.1389759665622
119 36.7218282111899
120 55.1587301587302

我希望匹配两个文件中的第一列并打印如下:

116  49.4073275862069
116  49.4073275862069  
116  49.4073275862069 
116  49.4073275862069 
116  49.4073275862069 
117  25.8182578688696
117  25.8182578688696
117  25.8182578688696
117  25.8182578688696
117  25.8182578688696

2 个答案:

答案 0 :(得分:3)

您只需使用join

即可
join <(sort file1) <(sort file2)

答案 1 :(得分:2)

试试这个单行:

awk 'NR==FNR{a[$1]=$2;next}$1 in a{print $1,a[$1]}' file2 file1