【发布时间】:2015-05-21 09:07:42
【问题描述】:
我有两个文件:
file 1:
a1 45 1/1 895
a1 65 0/1 478
a1 80 1/1 474
a2 45 0/1 145
a3 50 1/1 415
a3 32 0/1 547
file 2:
a1 45 1/1 784
a1 65 0/1 454
a1 89 1/1 354
a1 105 0/1 365
a2 45 0/1 478
a2 65 0/1 985
a3 32 0/1 658
a3 65 0/1 985
我想比较文件 1 和文件 2 的两列,并且只有当两者都匹配时,我才想打印文件 1 中的整行。
output:
a1 45 1/1 895
a1 65 0/1 478
a2 45 0/1 145
a3 32 0/1 547
这是我在 awk 中考虑的解决方案:
awk 'FNR==NR{a[$1$2];next} (($1$2 in a))' file1 file2
我想知道在 bash 中是否还有其他方法可以做到这一点。 谢谢!
【问题讨论】:
-
您将很难找到一种更简洁的方法,如下面的
grep。 -
我刚刚编辑了这个问题,因为我的文件中有两列以上,其他列不需要匹配。