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