最初の3つの列が他のファイルの最初の3つの列と一致する場合は、行を印刷します。

最初の3つの列が他のファイルの最初の3つの列と一致する場合は、行を印刷します。

私のfile1には3つの列があり、file2には8つの列があります。私が望むのは、ファイル2の最初の3列がファイル1で見つかった後、ファイル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

2つのファイルの長さが等しい場合は、次のことができます。

paste file1 file2 | awk '$1==$4 && $2==$5 && $3==$6 { print $4,$5,$6,$7,$8,$9,$10,$11}'

おすすめ記事