【问题标题】:Search and Modify Column in Large CSV FIle在大型 CSV 文件中搜索和修改列
【发布时间】:2014-04-16 05:06:20
【问题描述】:

我有一些大的 CSV 文件,格式如下(用逗号分隔)

2014.03.11 14:59:59.146,67.1547,67.15507,0.02,0.02
2014.03.11 14:59:59.206,67.15405,67.15437,0.02,0.02
2014.03.11 14:59:59.506,67.15552,67.15589,0.02,0.02
2014.03.11 14:59:59.707,67.15581,67.15616,0.02,0.02

现在我想完成这个任务。

  • 第 2 列和第 3 列的多个 100

结果应该是这样的

2014.03.11 14:59:59.146,6715.47,6715.507,0.02,0.02
2014.03.11 14:59:59.206,6715.405,6715.437,0.02,0.02
2014.03.11 14:59:59.506,6715.552,6715.589,0.02,0.02
2014.03.11 14:59:59.707,6715.581,6715.616,0.02,0.02

非常感谢您的帮助。谢谢

【问题讨论】:

    标签: windows perl unix sed awk


    【解决方案1】:

    这个awk 应该这样做:

    awk '{$2*=100;$3*=100}1' FS=, OFS=, file
    2014.03.11 14:59:59.146,6715.47,6715.51,0.02,0.02
    2014.03.11 14:59:59.206,6715.4,6715.44,0.02,0.02
    2014.03.11 14:59:59.506,6715.55,6715.59,0.02,0.02
    2014.03.11 14:59:59.707,6715.58,6715.62,0.02,0.02
    

    您可以使用$2=$2*100 或仅使用$2*=100 将一列乘以100

    【讨论】:

    • 不客气,如果答案是你喜欢的,请通过选中它旁边的复选框接受它:)
    【解决方案2】:
    perl -F/,/ -lape "$F[$_] *= 100 for (1,2); $_ = join',', @F;" < input.csv > output.csv
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-24
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多