【问题标题】:How can I add quotation marks to fields in a CSV file?如何在 CSV 文件中的字段中添加引号?
【发布时间】:2013-06-14 00:24:03
【问题描述】:

我有一个类似的 CSV 文件

Brand,Type,Color
Porsche,Sport,Red
BMW,Coupe,Blue

我想用引号括起来:

"Brand","Type","Color"
"Porsche","Sport","Red"
"BMW","Coupe","Blue"

最快的方法是什么?我将在 cronjob 中实现它。

【问题讨论】:

标签: linux sed awk


【解决方案1】:

使用 sed:

sed -e 's/^\|$/"/g' -e 's/,/","/g' input

【讨论】:

    【解决方案2】:

    使用带有 CSV 库的语言来处理 CSV 数据通常更简洁:

    ruby -rcsv -ne 'puts CSV.generate_line(CSV.parse_line($_), :force_quotes=>true)'
    

    【讨论】:

    • 这实际上很整洁!它会处理那些案例(9),其中一些字段被引用,而另一些则没有。
    【解决方案3】:

    awk:

    awk '{gsub(/[^,]+/,"\"&\"")}1' file.csv
    

    【讨论】:

      【解决方案4】:

      这可能对你有用(GNU sed):

      sed -r 's/[^,]+/"&"/g' file
      

      【讨论】:

        猜你喜欢
        • 2020-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-23
        • 2021-12-19
        • 2018-01-14
        • 1970-01-01
        相关资源
        最近更新 更多