我有两个这样的文件:
文件1
apple fruit 10 4
strawberry fruit 22 11
berry fruit 33 33
ball toy 1 12
straw thing 2 33
文件2
strawberry straw berry
rawberry raw berry
我想将文件2的第1列与文件1的第1列进行比较,将文件2的第2列与文件1的第1列进行比较,将文件2的第3列与文件1的第1列进行比较。如果找到匹配,我想显示所有文件 1 中的三个匹配行。
在这里,输出应该是:
strawberry fruit 22 11
straw thing 2 33
berry fruit 33 33
我怎样才能做到这一点?
答案1
$ awk 'NR==FNR{a[$1]=$0} $1 in a && $2 in a && $3 in a{print a[$1] ORS a[$2] ORS a[$3]}' file1 file2
strawberry fruit 22 11
straw thing 2 33
berry fruit 33 33
- 根据第一列保存行
file1
,然后如果所有三列file2
行都匹配则打印匹配的行