awkを使用して、一致する行なしでfile2の代わりにfile1で行を見つけます。

awkを使用して、一致する行なしでfile2の代わりにfile1で行を見つけます。

file1には、クレジットカードの請求履歴のリストが含まれています。

A            B
1/1/2020     $12.50
1/3/2020     $10.00
1/5/2020     $99.15
1/6/2020     $35.50
1/8/2020     $99.00

file2には正当な購入リストが含まれており、日付が一致する必要はありませんが、列Bの金額は一致する必要があります。

A            B
12/31/2020   $12.50
1/4/2020     $99.15
1/6/2020     $99.00

一致のために列Bを使用すると、file2に一致するレコードがないfile1のレコードをどのように見つけることができますか?

A            B
1/3/2020     $10.00
1/6/2020     $35.50

よろしくお願いします!

ベストアンサー1

$ awk 'NR==FNR{cnt[$2]++; next} (FNR==1) || (--cnt[$2] < 0)' file2 file1
A            B
1/3/2020     $10.00
1/6/2020     $35.50

おすすめ記事