将多个CSV组合成一个CSV列

时间:2013-06-04 09:05:27

标签: shell csv

我有很多csv文件,第1列的信息相同但第2列不同。

对于前。 CSV1具有以下信息

AAA, 11
BBB, 22
CCC, 33

CSV2有以下

AAA, 1111
BBB, 2222
CCC, 3333

我尝试了CAT文件,最终得到了一个由Rows连接的文件。但我正在寻找新的csv中的以下输出。我正在寻找一种在shell中完成它的方法。

Result.csv应为

AAA, 11, 1111
BBB, 22, 2222
CCC, 33, 3333

2 个答案:

答案 0 :(得分:0)

使用join

第一档:

$ cat 1
AAA, 11
BBB, 22
CCC, 33

第二档:

$ cat 2
AAA, 1111
BBB, 2222
CCC, 3333

加入他们:

$ join -t, 1 2
AAA, 11, 1111
BBB, 22, 2222
CCC, 33, 3333

答案 1 :(得分:0)

试试这个单行:

 awk -F, -v OFS="," '{a[$1]=a[$1]?a[$1]FS$2:$2}END{for(x in a)print x,a[x]}' file1 2 3 ....