使用关键字在一个csv中统一四个csv文件

时间:2014-11-19 19:32:09

标签: bash csv

我需要使用每个文件的第一列作为关键字加入4个csv文件。我已经使用了排序,但在这种情况下它并没有运行。

每个文件的结构都很简单,

file 1
London,7,10
Madrid,10,20
Paris,7,14

file 2
London,10,15
Madrid,10,16
Paris,11,16

file 3
London,6,12
Madrid,7,14
Paris,8,15

file 4
London,7,14
Madrid,8,14
Paris,9,15

我需要

ending file 
London,7,10,10,16,6,12,7,14
Madrid,10,20,10,16,7,14,8,14
Paris,7,14,11,16,8,15,9,15

再次感谢

2 个答案:

答案 0 :(得分:2)

您可以使用awk

轻松完成此操作
$ awk -F, '{arr[$1]=arr[$1]","$2","$3}END{for (i in arr) print i arr[i]}' file1 file2 file3 file4
London,7,10,10,15,6,12,7,14
Madrid,10,20,10,16,7,14,8,14
Paris,7,14,11,16,8,15,9,15

答案 1 :(得分:0)

使用join程序。它一次只能做两个,所以你需要链接它。

join -t, test.1 test.2 | join -t, - test.3 | join -t, - test.4

文件需要按加入字段(1)排序,如果不是,则需要通过sort

join -t, <(sort test.1) <(sort test.2) | join -t, - <(sort test.3) | join -t, - <(sort test.4)