我有两个文件(分隔符为制表符)
文件1:db.txt
string1 string2 string3 001 string4
string5 string6 string7 002 string8
string9 string10 string11 003 string12
文件2:
query.txt
id1 001
id2 003
我想要匹配文件1和文件2,如果匹配成功,则打印
db.txt
的第1到5列以及query.txt
的第1列。我尝试使用awk,以下是我的代码:
awk 'BEGIN{FS=OFS="\t"}NR==FNR{a[$2]=$4;next}$4 in a{print $1,$2,$3,$4,$5,a[$1]}' query.txt db.txt
但是我只得到了一个带有匹配项(?至少我认为是这样)和 db.txt
文件列的文件。
编辑:我的更复杂的 db2.txt
string1 <TAB> string2 <TAB> 9999 abc dehi [way:pn9999] <TAB> 001 <TAB> org; string3 string4
string5 <TAB> string6 <TAB> 9999 dwd meti [way:pn8999] <TAB> 002 <TAB> org2; string7
string8 <TAB> string9 <TAB> 9999 dwd meti [way:pn7999] <TAB> 003 <TAB> org4; string10
db
文件的第四个字段吗? - James Brownawk 'BEGIN{FS=OFS="\t"} FNR == NR { a[$1] = $1; next } $1 in a { print a[$2], $2 }'
。 - rororo