我想比较两个文件的第一列。如果匹配则打印第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中
答案 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