1列の一致に基づいて2つのファイルをマージする方法は?

1列の一致に基づいて2つのファイルをマージする方法は?

2つのファイルがありますB.csv

1,AD
2,AB
3,AC
5,AF
7,AE

そしてC.csv

1,x
3,z
5,y

この出力を取得するにはどうすればよいですか?

1,AD,x
2,AB,
3,AC,z
5,AF,y
7,AE,

2つのファイルの共通列1を一致させることによって?

ベストアンサー1

使用参加する

join -t, -a1  B.csv C.csv

左外部結合を表します-a1。つまり、file2 にはない file1 の行を表示します。

ペアのない行の末尾にカンマがある場合本物問題

(join -t, B.csv C.csv ; join -t, -v1 B.csv C.csv | perl -pe "s/$/,/" ) | sort

おすすめ記事