次のように2つのcsvファイルがあり、file1とfile2を比較したいと思います。レコードがfile2にある場合は、file1から行全体を削除する必要があります。ここで比較されるフィールドは、ソースファイルの場所11のIDです。
ファイル1.CSV
"NAME","CITY","MARKS","ID","C","NAME1","TYPE"
"A","XY","100","12","","31420","TYPE1"
"A","XY","100","13","","31420","TYPE1"
ファイル2.CSV
"ID"
"11"
"12"
"25"
期待される出力
"NAME","CITY","MARKS","ID","C","NAME1","TYPE"
"A","XY","100","13","","31420","TYPE1"
ベストアンサー1
次のユーティリティを使用してくださいcsvkit(私のUbuntuシステムのパッケージpython3-csvkit
):
$ csvsql --query '
SELECT * FROM FILE1 WHERE ID NOT IN (SELECT ID FROM FILE2)
' FILE1.CSV FILE2.CSV | csvformat -U1
"NAME","CITY","MARKS","ID","C","NAME1","TYPE"
"A","XY","100","13","","31420","TYPE1"