2つのcsvファイルを比較し、結果を新しい列に追加します。

2つのcsvファイルを比較し、結果を新しい列に追加します。

現在のファイルNew.csvと古いバージョンのOld.csvという2つのcsvファイルがあります。彼らは次のとおりです。

old.csv

name,age,lastname,film,song,mother,fadher,col0,col1,col3,col4,col5,col6,col7,a,b,z,t
jay,23,,stgh,tt,,,,,,,,,,,
Ann,32,,,,,,,,,,,,,,,,
Chris,43,titanic,hi,,,,,,,

新しい.csv

name,age,lastname,film,song,mother,fadher,col0,col1,col3,col4,col5,col6,col7,a,b,z,t
jay,23,,stgh,tt,,,,,,,,,,,
alex,22,,hello,,,,,,,,,,,jed,,,

Linuxコマンドを使用して比較したかったので、次の結果を見つけました。

status,name,age,lastname,film,song,mother,fadher,col0,col1,col3,col4,col5,col6,col7,a,b,z,t
Common,jay,23,,stgh,tt,,,,,,,,,,,
New,alex,22,,hello,,,,,,,,,,,jed,,,
Old,Ann,32,,,,,,,,,,,,,,,,
Old,Chris,43,titanic,hi,,,,,,,

答え1

1つの方法を使用してくださいawk

awk 'NR==FNR && NR>1{seen[$0]++; next} 
     NR==1{ print "Status," $0}
     FNR!=1{print ($0 in seen)?"Common," $0:"New," $0;delete seen[$0];}
END{for (x in seen) print "Old," x}' old.csv new.csv

出力:

Status,name,age,lastname,film,song,mother,fadher,col0,col1,col3,col4,col5,col6,col7,a,b,z,t
Common,jay,23,,stgh,tt,,,,,,,,,,,
New,alex,22,,hello,,,,,,,,,,,jed,,,
Old,Chris,43,titanic,hi,,,,,,,
Old,Ann,32,,,,,,,,,,,,,,,,

関連情報