2つのcsvファイルを比較し、一致するデータを新しいcsvファイルに抽出します。

2つのcsvファイルを比較し、一致するデータを新しいcsvファイルに抽出します。

同様のコンテンツ/データを持つ2つのcsvファイルがあります。


ファイル1.csv

ADIS
BAP3
Mercury_System
nxh-2003
DR_FeatureUP_PT

ファイル2.csv

ADIS,projects.adis
EcoSystems,projects.ecosystems
em1xxxsw,projects.em1xxxsw
BAP3,projects.bap3
Dirana4,projects.dirana4
Mercury_System,projects.mercury_system
nxh-2003,projects.nxh-2003
DocStore,projects.docstore
DR_FeatureUP_PT,projects.dr_featureup_pt

予想される出力.csv

ADIS,projects.adis
BAP3,projects.bap3
Mercury_System,projects.mercury_system
nxh-2003,projects.nxh-2003
DR_FeatureUP_PT,projects.dr_featureup_pt

そのクエリのコマンドを教えてください。

ベストアンサー1

使用ミラーmlr)は、指定されたフィールドに2つのCSVデータセットを結合しますADIS

$ mlr --csv join -j ADIS -f file1.csv file2.csv
ADIS,projects.adis
BAP3,projects.bap3
Mercury_System,projects.mercury_system
nxh-2003,projects.nxh-2003
DR_FeatureUP_PT,projects.dr_featureup_pt

ADIS実際にフィールド名ではない場合、2つのCSVファイルはヘッダなし、次のように使用します(入力をヘッダーなしのCSVに読み込み、ジョブはフィールド名の代わりにフィールド番号を使用しますjoin)。

$ mlr --csv -N join -j 1 -f file1.csv file2.csv
ADIS,projects.adis
BAP3,projects.bap3
Mercury_System,projects.mercury_system
nxh-2003,projects.nxh-2003
DR_FeatureUP_PT,projects.dr_featureup_pt

2番目のコマンドの出力そうだ最初のコマンドと同じです。ただし、各ファイルの最初の行はヘッダー行として解釈されず、データフィールドのレコードとして解釈されます。

これは、入力データファイルがDOSまたはUnixテキストファイルであるかどうかに関係なく機能します。

おすすめ記事