2つの.csvファイルを比較し、3番目のファイルに書き込む

2つの.csvファイルを比較し、3番目のファイルに書き込む

私のMacには2つのファイルがあります。

file1.csv(約4000ジュール)

1234,yxds
4352,fsfk
8765,fdgj
7874,hffe
9038,fjro
8297,fhjs

そしてfile2.csv(約50行)

1234,"number","date","OS"
4352,"number","date","OS"
8765,"number","date","OS"
8297,"number","date","OS"

ファイル3は次のようになります。

1234,yxds
4352,fsfk
8765,fdgj
8297,fhjs

file2.csvだから私は列2に存在する項目だけが欲しい。file1.csv

file1.csv本質的に、私は他のスクリプトと比較するスクリプトを書くのが好きです。file3.csv

私は今まで成功joinしませんでしたawk。これまでに試したことは次のとおりです。

join -t, -12 -o 1.1,2.1,2.2 file1.csv file2.csv > file 3.csv

そして

awk 'NR==FNR{a[$1]=$2;next}{if ($1 in a && a[$1] != $2)print;}' FS="|" file1.csv file2.csv > file3.csv

ベストアンサー1

joinソートに使用されるファイル:

join -o 1.1,1.2 <(sort file1.csv) <(sort file2.csv) > file3.csv
  • -o 1.1,1.2出力をfile1.field1表し、file1.field2

出力:

1234 yxds
4352 fsfk
8297 fhjs
8765 fdgj

おすすめ記事