awk匹配同一行中两个文件中的两个字段

awk匹配同一行中两个文件中的两个字段,awk,Awk,我想找到file1中的字段1和2与file2中的字段1和4匹配的行,然后打印这些字段与file2匹配的所有行。我正在使用: awk 'FNR==NR{a[$1];b[$2];next} $1 in a && $4 in b' file1 file2 > output 我遇到了一个问题,即输出包含两个文件中字段匹配的行,但不在同一行中。例如,当第(下)行位于文件1中时: 15 70589272 rs12148337 15 70589272

我想找到file1中的字段1和2与file2中的字段1和4匹配的行,然后打印这些字段与file2匹配的所有行。我正在使用:

awk 'FNR==NR{a[$1];b[$2];next} $1 in a && $4 in b' file1 file2 > output
我遇到了一个问题,即输出包含两个文件中字段匹配的行,但不在同一行中。例如,当第(下)行位于文件1中时:

15     70589272    rs12148337     15     70589272    rs12148337            1 
第行(如下)位于文件2中:

10  rs181419901 0   70589272    4   2
即使字段1不匹配,输出也包含file2中的行(上面)。表面上是因为field1在另一行中匹配。我可以将命令限制为打印两个字段仅在同一行中匹配的行吗?

您非常接近:

awk 'FNR==NR{a[$1,$2];next} ($1,$4) in a' file1 file2