두 개의 csv 파일을 비교하고 결과를 새 열에 추가합니다.

두 개의 csv 파일을 비교하고 결과를 새 열에 추가합니다.

현재 파일 New.csv와 이전 버전 Old.csv라는 두 개의 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

한 가지 방법을 사용하십시오 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,,,,,,,,,,,,,,,,

관련 정보