我想使用awk根据两个文件中的不同字段匹配两个文件?

时间:2016-12-20 10:27:35

标签: awk

嗨我有一个大数据集,我希望匹配两个文件,基于$ 5从文件1和$ 1或$ 3的文件2和打印文件1匹配文件2.此外,我想打印$ 5和$ 6匹配后文件1中的文件2

档案1

7   81  1   47  32070  
7   83  1   67  29446  
7   92  1   84  28234

文件2

32070        0      0   19360101   HF 8   0 M C  
28234        0      0   19350101   HF 8   0 M C  
124332       0      0   19340101   HF 8   0 M C  
29446        0      0   19340101   HF 8   0 M C  

我想像这样打印

7   81  1   47  32070  HF 8  
7   83  1   67  29446  HF 8  
7   92  1   84  28234  HF 8  

1 个答案:

答案 0 :(得分:3)

这个awk单行应该做的工作:

awk 'NR==FNR{a[$1]=$5 FS $6;next}$0=$0 FS a[$NF]' f2 f1

如果对您的示例输入文件进行测试:

kent$  awk 'NR==FNR{a[$1]=$5 FS $6;next}$0=$0 FS a[$NF]' f2 f1
7 81 1 47 32070 HF 8
7 83 1 67 29446 HF 8
7 92 1 84 28234 HF 8