2013-06-04 108 views
0

我有许多csv文件与列1具有相同的信息,但列2是不同的。将多个CSV组合成一个单独的CSV列明智

例如, CSV1具有以下信息

AAA, 11 
BBB, 22 
CCC, 33 

而且CSV2具有以下

AAA, 1111 
BBB, 2222 
CCC, 3333 

我试图CAT的文件,我最终获得通过级联排文件。但我正在寻找新的csv中的以下输出。我正在寻找一种方法在shell中执行它。

Result.csv应该

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

回答

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 
+0

谢谢,但我有相同的格式20个+文件。你认为这是理想的解决方案吗?任何其他方式做到这一点? – user2450971

+0

然后请提供一个真实用例的例子。 – 2013-06-04 09:16:33

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 .... 
+0

CD $ testFolder /结果 回声> Results.csv CD .. 在$ F(找到。-name “sample.csv”) 做 \t回声$ F \t猫$ F >> Results.csv done#现在,而不是猫,我想使用顶部给出的awk。但我不想手动提供该文件作为输入。它应该找到每个sample.csv文件,并保持追加到我的问题中提到的Results.csv。有没有办法做到这一点? – user2450971

相关问题