我的 file1 有 3 列,file2 有 8 列。我想要做的是,如果在文件 1 中找到文件 2 中的前 3 列,则打印出文件 2 中的全部 8 列。
我尝试过类似的代码
awk 'NR==FNR{c[$1$2$3]++;next};c[$1$2$3]>0' file1 file2
...但它只打印出 file2 中的最后一个匹配行。
我不知道出了什么问题。有人可以帮我吗?我真的很感激!先感谢您!
文件1看起来像这样
7000000185249020 89812 89911
7000000185249020 89912 90011
7000000185249020 202532 202631
7000000185249020 202632 202704
7000000185249020 202764 202863
.....
文件2看起来像这样
7000000185249020 89812 89911 100 14.1 20 0.511 48
7000000185249020 89912 90011 100 12.7 19.8 0.642 49
7000000185249020 90012 90023 12 11 17.9 0.704 58.3
答案1
如果两个文件长度相同,可以这样做:
paste file1 file2 | awk '$1==$4 && $2==$5 && $3==$6 { print $4,$5,$6,$7,$8,$9,$10,$11}'