我想使用关键列加入两个文件城市的名称。我想只加入csv中重复的城市数据......
例如
File1.csv
London, 10,15
Rome, 12,18
Paris, 8, 16
Lissabon, 10,17
File2.csv
London, 11,16
Berlin, 13,19
Paris, 12,18
Lissabon, 11,19
结果我希望,
London,10,15,11,16
Paris,8,16,12,18
Lissabon,10,17,11,19
我怎样才能在bash中做到这一点?
答案 0 :(得分:2)
bash有join
命令,但它要求对输入进行排序:
$ join -j 1 -t ',' <(sort File1.csv) <(sort File2.csv)
Lissabon, 10,17, 11,19
London, 10,15, 11,16
Paris, 8, 16, 12,18
答案 1 :(得分:1)
使用此awk
:
awk -F, 'FNR==NR {a[$1]=$0;next} $1 in a{p=$1; sub(/^[^,]+, */, "");
print a[p], $0}' OFS=, file1 file2
London, 10,15,11,16
Paris, 8, 16,12,18
Lissabon, 10,17,11,19