【发布时间】:2017-11-14 03:55:39
【问题描述】:
在linux中使用join命令,我想比较file1.csv和file2.csv的第一列,在列匹配的地方,我想在file1.csv中添加file2.csv列。 file1.csv 和 file2.csv 中的第一列不同,file1.csv 是 file2.csv 的子集(第一列明智)。
head file1.csv
column1, column2, column3
1.0, 5, 3
1.5, 4, 9
2.1, 2, 1
和
head file2.csv
column1, column2, column4
1.0, 5, 9
1.2, 0, 0
1.3, 0, 1
1.5, 4, 3
2.1, 2, 5
我想join 这样之后:
head file1.csv
column1, column2, column3, column4
1.0, 5, 3, 9
1.5, 4, 9, 3
2.1, 2, 1, 5
我尝试了join -1 1 -2 1 -t, -o 1.1,1.2,1.3,2.3 <(sort -k 1 file1.csv ) <(sort -k 1 file2.csv ),但它不起作用。因为它也带来了标题行底部:
join -1 1 -2 1 -t, -o 1.1,1.2,1.3,2.3 <(sort -k 1 file1.csv ) <(sort -k 1 file2.csv )
1.0, 5, 3, 9
1.5, 4, 9, 3
2.1, 2, 1, 5
column1, column2, column3, column4
【问题讨论】:
标签: csv sorting unix join command-line