2つのcsvファイルの違いを列別に取得し、その違いを3番目のファイルに書き込む方法は?

2つのcsvファイルの違いを列別に取得し、その違いを3番目のファイルに書き込む方法は?

このような2つのcsvファイルがあります。

422174,XN,20.99,2020-09-01,2022-01-20 20:20:28.613+00
421348,SB,21.99,2021-01-26,2022-01-20 20:20:28.613+00
885176,XN,41.80,2021-11-17,2022-01-20 20:20:28.613+00
881751,SB,12.81,2020-09-01,2022-01-20 20:20:28.613+00
722483,XN,67.50,2020-09-01,2022-01-20 20:20:28.613+00

2番目のファイル。

422174,XN,25.99,2020-09-01,2022-01-21 20:20:28.613+00
667843,XN,22.99,2020-09-01,2022-01-20 20:20:28.613+00
421348,SB,21.99,2021-01-26,2022-01-20 20:20:28.613+00
885176,XN,41.80,2021-11-17,2022-01-20 20:20:28.613+00
881751,SB,12.81,2020-09-01,2022-01-20 20:20:28.613+00
156734,XN,34.50,2020-09-01,2022-01-20 20:20:28.613+00

出力は次のようになります。

667843,XN,22.99,2020-09-01,2022-01-20 20:20:28.613+00
156734,XN,34.50,2020-09-01,2022-01-20 20:20:28.613+00

しかし、問題は、これら2つのcsvファイルを列1と列2でのみ比較する必要があることです。

例えば。

file1.csvの列1 - 列2 = file2.csvの列1 - 列2の場合、これは違いと見なすべきではありません。

最後の列はfile1と異なる場合がありますが、列1と列2は同じでなければならないため、違いはありません。

この目標をどのように達成できますか?

ベストアンサー1

awkを使用してください。

$ awk -F, 'NR==FNR{a[$1,$2]; next} !(($1,$2) in a)' file1.csv file2.csv
667843,XN,22.99,2020-09-01,2022-01-20 20:20:28.613+00
156734,XN,34.50,2020-09-01,2022-01-20 20:20:28.613+00

おすすめ記事