我有几个CSV文件,我想通过匹配列标题来组合,但仍然保留不匹配的列,例如:
输入file1.csv:
col1,col2,col3,col5
a,b,c,d
d,e,b,g
c,a,d,h
输入file2.csv:
col1,col3,col4,col5
g,d,b,c
o,e,x,h
b,n,w,e
所需输出:
col1,col2,col3,col4,col5
a,b,c,,d
d,e,b,,g
c,a,d,,h
g,,d,b,c
o,,e,x,h
b,,n,w,e
我会使用Miller(这里有几个操作系统可用):
mlr --csv unsparsify file1.csv file2.csv
col1,col2,col3,col5,col4
a,b,c,d,
d,e,b,g,
c,a,d,h,
g,,d,c,b
o,,e,h,x
b,,n,e,w
备注:列按照它们第一次出现的顺序输出;如果需要,您可以指定自定义排序,但您需要提前知道列名。