【发布时间】:2014-11-10 14:13:05
【问题描述】:
我有两个 csv 文件,我想使用键值(城市的列)加入它们。
一个csv文件,d01.csv有这种形式,
Barcelona, 19.5, 29.5
Tarragona, 20.4, 31.5
Girona, 17.2, 32.5
Lleida, 16.5, 33.5
Vic, 17.5, 31.4
另一个,d02.csv,具有下一个结构,
City, Data, TMax, TMin
Barcelona, 20140916, 19.9, 28.5
Tarragona, 20140916, 21.4, 30.5
Lleida, 20140916, 17.5, 32.5
Tortosa, 20140916, 20.5, 30.4
我需要一个新的 csv 文件,其中有一列城市出现在 2 个 csv 文件中。
City, Tmin, Tmax, Date, Tmin1, Tmax1
Barcelona, 19.5, 29.5, 20140916, 19.9, 28.5
Tarragona, 20.4, 31.5, 20140916, 21.4, 30.5
Girona, 17.2, 32.5, 20140916, 17.5, 32.5
Lleida, 16.5, 33.5, 20140916, 20.5, 30.4
我试图这样做
join -j 2 -t ',' d01.csv d02.csv | awk -F "," '{print $1, $2, $3, $4, $5} > d03.csv
但它不完整...我如何订购键值?
【问题讨论】:
-
这些是实际文件中的前导数字吗?该连接命令的输出是什么?作为此过程的一部分,您是否真的试图反转
Tmin和Tmax列顺序?d01.csv真的没有标题行吗?Tmax值是否应该小于输入文件中的Tmin值? -
@Jotne 我没有进行该编辑,因为我不确定第一个文件中的前导逗号是否有误。毕竟,OP 在
join命令中使用了-j 2。 -
OP 如果编辑有误,请更正。