【问题标题】:CSV separated by space to separated by comma in terminalCSV 在终端中以空格分隔以逗号分隔
【发布时间】:2018-03-22 06:09:32
【问题描述】:

我有一个这样的 CSV 文件:

$ head file.csv 
22.87333333 22.87333333
22.87944444 89.84361111
22.89722222 89.8425

我想使用终端将其传输为逗号分隔。像这样;

$ head file.csv 
22.87333333,22.87333333
22.87944444,89.84361111
22.89722222,89.8425

有什么方法可以做到这一点?

【问题讨论】:

标签: csv awk terminal grep


【解决方案1】:

假设你的文件实际上是空格分隔的值,这个sed 命令:

$ sed -i 's/ /,/g' file.csv

将用逗号替换 (-i) 每次出现 (globally) 的空格,使用 ssubstitute command

【讨论】:

    【解决方案2】:

    只需使用tr(翻译)命令

    tr " " "," <file 
    

    awk等效

    $ awk '{OFS=","; $1=$1}1' file
    

    输出:

    22.87333333,22.87333333
    22.87944444,89.84361111
    22.89722222,89.8425
    

    【讨论】:

      【解决方案3】:

      Sed 有一个音译命令,y:

      $ sed 'y/ /,/' file.csv
      22.87333333,22.87333333
      22.87944444,89.84361111
      22.89722222,89.8425
      

      【讨论】:

        【解决方案4】:

        还有一个 awk 解决方案:

        $ awk -v OFS=',' '{$1=$1}1' file.csv
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-11-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-06
          • 1970-01-01
          相关资源
          最近更新 更多