【问题标题】: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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      • 2016-11-21
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多