awk比较并将匹配附加到另一个文件中

时间:2014-04-13 21:26:01

标签: linux shell unix awk

我想比较两个文件的第一列。如果匹配则打印第1档和第2列的对应值,从第1档到第2档

file1的
apple,1,2
orange,2,3
pine,3,4

file2的
apple,2,2
orange,4,5

期望的输出
apple,2,2,1,2
orange,4,5,2,3

我能够通过awk -F, 'NR==FNR{_1[$1]++;next}_1[$1]' file2 file1找到匹配项,但不知道如何将file1值附加到file2中

2 个答案:

答案 0 :(得分:2)

怎么样:

join -t',' file2 file1

如果你喜欢用awk做这件事:

awk -F',' 'NR==FNR{a[$1]=$0;sub(/^[^,]*,/,"",a[$1]);next}$1 in a{print $0 FS a[$1]}' f1 f2

答案 1 :(得分:2)

您可以使用join

join -t "," file2 file1

或者扩展您的awk

awk -F, 'NR==FNR{_1[$1]++;_2[$1]=FS $2 FS $3;next}_1[$1]{print $0 _2[$1]}' file2 file1