AWK-匹配前3个字段,打印$6&$7从同一行的两个文件中删除
我的两个输入文件已更改,我需要匹配两个文件的前三个字段。匹配完成后,我想打印文件1的$1(其中有匹配的)和$6和$7,以及文件2的$6和$7。原始代码是一个AWK单行程序,只匹配第一个字段 File1AWK-匹配前3个字段,打印$6&$7从同一行的两个文件中删除,awk,Awk,我的两个输入文件已更改,我需要匹配两个文件的前三个字段。匹配完成后,我想打印文件1的$1(其中有匹配的)和$6和$7,以及文件2的$6和$7。原始代码是一个AWK单行程序,只匹配第一个字段 File1 BSTN-SANJ BSTN SANJ 0 0 50 105910 MRFD-SANJ MRFD SANJ 0 0 40 69105 NYRK-SANJ NYRK SANJ 0 0 30 905010 SANJ-HMRD
BSTN-SANJ BSTN SANJ 0 0 50 105910
MRFD-SANJ MRFD SANJ 0 0 40 69105
NYRK-SANJ NYRK SANJ 0 0 30 905010
SANJ-HMRD SANJ HMRD 0 0 25 69010
SANJ-NRFK SANJ NRFK 0 0 38 61506
文件2
BSTN-SANJ BSTN SANJ 0 0 45 601251
MRFD-SANJ MRFD SANJ 0 0 39 919591
NYRK-SANJ NYRK SANJ 0 0 25 690155
输出
BSTN-SANJ 50 105910 45 601251
MRFD-SANJ 40 69105 39 919591
NYRK-SANJ 30 905010 25 690155
这就行了
awk -v OFS='\t' '
{key = $1 OFS $2 OFS $3}
NR == FNR {f2[key] = $6 OFS $7; next}
key in f2 {print $1, $6, $7, f2[key]}
' file2 file1
请在Q的正文中包含您的原始“AWK one liner to match just the first field.”(不是作为评论回复!)。祝你好运。