【问题标题】:How can I merge two CSV files from command line?如何从命令行合并两个 CSV 文件?
【发布时间】:2015-06-11 12:56:32
【问题描述】:

我有两个标题相同的 CSV 文件,分别称为 a.csv 和 b.csv。如何将这两个文件合并到第三个 c.csv 中,使 c 由 a 和 b 中的所有行组成?

【问题讨论】:

    标签: unix csv merge


    【解决方案1】:

    基本合并是

     cat a.csv <(tail +2 b.csv) > c.csv
    

    这会将所有b.csv放在a.csv之后。

    编辑 我添加了&lt;(tail +2 b.csv)。它将跳过b.csv 文件中的标题。

    edit2

    $ cat a.csv
    hdr
    a
    b
    c
    $ cat b.csv
    hdr
    e
    f
    g
    
    $ cat a.csv <(tail +2 b.csv)
    hdr
    a
    b
    c
    e
    f
    g
    

    IHTH

    【讨论】:

    • 它工作正常。但我不明白为什么+2?标题是一行,对吧?
    • @AravindhKuppusamy :如果您想得到人们的回复,请务必包含他们的@nameNoSpaces 标签;-)。 +2 的意思是“从第二行开始”,对吧?祝你好运。
    【解决方案2】:

    我想加入两个 CSV 文件,但下面的单行代码不起作用
    cat file1.csv &lt;(tail file2.csv) &gt; file.csv

    奇怪的是,我不得不告诉 tail 跳过 0 行
    cat file1.csv &lt;(tail +0 file2.csv) &gt; file.csv

    【讨论】:

      【解决方案3】:

      这是我的答案(忽略第一行并添加下一行)

       cat sample1.csv <(echo) <(tail +2 sample2.csv) > sample3.csv
      

      【讨论】:

        猜你喜欢
        • 2023-03-19
        • 2021-12-23
        • 1970-01-01
        • 2016-02-16
        • 1970-01-01
        • 1970-01-01
        • 2016-06-20
        • 2012-02-18
        • 2019-03-27
        相关资源
        最近更新 更多