【问题标题】:Need to parse strings on data from a big linux text file (~20 millions of rows) and convert to csv需要解析来自大型 linux 文本文件(约 2000 万行)的数据字符串并转换为 csv
【发布时间】:2017-12-17 16:42:05
【问题描述】:

我有一个大文件(20M 行),每行格式如下:

(5859785,7410375) (5859799,7410377) LAYER_ACT stringofdatathatislateronrow
(58597,74103) (58597,74103) LAYER_ACT2 stringofdatathatislateronrowmillion

我需要一个 csv 输出:

X              Y
5859785      7410375
58597        74103

我知道 unix 上的“sed”命令可以用来抓取东西,但是我无法让它工作以获得正确的格式。您有更好的解决方案来获得此输出吗?

【问题讨论】:

    标签: linux csv unix sed grep


    【解决方案1】:

    使用 (), 作为 awk 的输入字段分隔符:

    awk -F '[(),]' 'BEGIN{OFS="\t"; print "X","Y"} {print $2,$3}' file
    

    输出:

    X Y 5859785 7410375 58597 74103

    根据需要更改输出字段分隔符 (OFS)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多