找到两个文件的两列之间的匹配项

时间:2015-05-21 09:07:42

标签: bash awk

我有两个文件:

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中是否还有其他方法可以做到这一点。 谢谢!

1 个答案:

答案 0 :(得分:1)

如果需要匹配整行,那么virtualenv --no-site-packages myenv cd myenv source bin/activate pip install numpy pip install scipy pip install theano python import theano theano.tensor.signal.conv >>AttributeError: 'module' object has no attribute 'conv' 是更简单的选项:

grep -f

修改

grep -Ff file1 file2
a1 45
a1 65
a2 45
a3 32