我需要使用每个文件的第一列作为关键字加入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
再次感谢
答案 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)