嗨我有一个大数据集,我希望匹配两个文件,基于$ 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
答案 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