【问题标题】:Fuse two csv files融合两个 csv 文件
【发布时间】:2017-06-09 13:06:36
【问题描述】:
我正在尝试使用 BASH 以这种方式融合两个 csv 文件。
files1.csv:
Col1;Col2
a;b
b:c
file2.csv
Col3;Col4
1;2
3;4
结果.csv
Col1;Col2;Col3;Col4
a;b;0;0
b;c;0;0
0;0;1;2
0;0;3;4
结果文件中的“0”只是空单元格。
我尝试使用粘贴命令,但它并没有按照我想要的方式融合它。
paste -d';' file1 file2
有没有办法使用 BASH 来做到这一点?
谢谢。
【问题讨论】:
标签:
bash
csv
export-to-csv
【解决方案1】:
awk 中的一个:
$ awk -v OFS=";" '
FNR==1 { a[1]=a[1] (a[1]==""?"":OFS) $0; next } # mind headers
FNR==NR { a[NR]=$0 OFS 0 OFS 0; next } # hash file1
{ a[NR]=0 OFS 0 OFS $0 } # hash file2
END { for(i=1;i<=NR;i++)if(i in a)print a[i] } # output
' file1 file2
Col1;Col2;Col3;Col4
a;b;0;0
b:c;0;0
0;0;1;2
0;0;3;4