我试图以这种方式比较两个不同的文件,比如说“file1”和“file2”。如果两个文件中的字段 $2 和 $3 相同,则打印 file2 的 $0。这是一个例子:
file1
E 352 697
E 25 692
E 510 744
file2
E 335 705 1 1
E 267 792 1 2
E 365 395 1 3
E 25 692 1 4
E 566 624 1 5
E 227 358 1 6
E 516 554 1 7
E 510 744 1 8
E 234 790 1 9
E 352 697 1 10
Run Code Online (Sandbox Code Playgroud)
期望的输出:
E 352 697 1 10
E 25 692 1 4
E 510 744 1 8
Run Code Online (Sandbox Code Playgroud)
请注意,file1 中的所有对 $2,$3 都包含在 file2 中,并且输出文件的行数与 file1 相同。我知道有很多类似问题的问题,但所有答案都没有用。我尝试过使用:
awk 'FNR==NR {a[$2]; b[$3]; next} $2 in a && $3 in b' file1 file2 > output
Run Code Online (Sandbox Code Playgroud)
它可以工作,但在输出文件中有额外的行。你可以帮帮我吗?谢谢!