AWK-比较两个文件,匹配两个字段,插入新列

AWK-比较两个文件,匹配两个字段,插入新列,awk,Awk,这个密码坏了。我知道运行两次类似的代码以获得输出效率很低,但我不擅长AWK 在第一次运行中,将file1中的$1和$2与file2中的$1和$2进行匹配。当存在匹配项时,将$3文件1插入$2文件1 在第二次运行中,将file1的$1和$2与“部分输出”中的$4和$5进行匹配。当存在匹配项时,将$3的file1插入$6的“部分文件” File1 NODE1 INT1 10 NODE1 INT2 20 NODE2 INT1 10 NODE2 INT2 20 N

这个密码坏了。我知道运行两次类似的代码以获得输出效率很低,但我不擅长AWK

在第一次运行中,将file1中的$1和$2与file2中的$1和$2进行匹配。当存在匹配项时,将$3文件1插入$2文件1

在第二次运行中,将file1的$1和$2与“部分输出”中的$4和$5进行匹配。当存在匹配项时,将$3的file1插入$6的“部分文件”

File1

NODE1   INT1    10
NODE1   INT2    20
NODE2   INT1    10
NODE2   INT2    20
NODE3   INT1    10
NODE3   INT2    20
NODE4   INT1    10
NODE4   INT2    20
文件2

NODE1   INT1    NODE2   INT1
NODE3   INT1    NODE4   INT1
NODE1   INT2    NODE3   INT2
NODE2   INT2    NODE4   INT2
部分输出

NODE1   INT1    10  NODE2   INT1
NODE3   INT1    10  NODE4   INT1
NODE1   INT2    20  NODE3   INT2
NODE2   INT2    20  NODE4   INT2
NODE1   INT1    10  NODE2   INT1    10
NODE3   INT1    10  NODE4   INT1    10
NODE1   INT2    20  NODE3   INT2    20
NODE2   INT2    20  NODE4   INT2    20
最终输出

NODE1   INT1    10  NODE2   INT1
NODE3   INT1    10  NODE4   INT1
NODE1   INT2    20  NODE3   INT2
NODE2   INT2    20  NODE4   INT2
NODE1   INT1    10  NODE2   INT1    10
NODE3   INT1    10  NODE4   INT1    10
NODE1   INT2    20  NODE3   INT2    20
NODE2   INT2    20  NODE4   INT2    20
你只需要这个吗

awk '
    BEGIN {FS = OFS = "\t"} 
    NR == FNR {v[$1,$2] = $3; next} 
    {print $1, $2, v[$1,$2], $3, $4, v[$3,$4]}
' file1 file2