【问题标题】:Replace first column on csv file based on their value根据它们的值替换 csv 文件上的第一列
【发布时间】:2017-06-03 18:01:54
【问题描述】:

我有一个结构如下的 csv 文件:

01 - FOO_1,value2,value3,...
01 - FOO_1,value2,value3,...
07 - FOO_7,value2,value3,...
...

如何更改第一列,使其仅保留数字,如下所示:

01,value2,value3,...
01,value2,value3,...
07,value2,value3,...

【问题讨论】:

  • 请您编辑您的帖子并向我们展示您的尝试吗?
  • @fd0 显然没什么,因为它非常简单,并且对这个网站的基本了解会给他们一个答案。

标签: bash csv awk


【解决方案1】:

使用 sed:

sed 's/^\([0-9]*\)\([^,]*\)\(.*\)/\1\3/g' file

【讨论】:

  • 几乎可以工作,但它实际上将文本与创建另一列的数字分开
【解决方案2】:
sed 's/ [^,]*//' file

.......

【讨论】:

    【解决方案3】:

    awk解决方案:

    awk -F, '{ $1=sprintf("%02d",$1) }1' OFS=',' file
    

    【讨论】:

      猜你喜欢
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-10
      • 1970-01-01
      • 2023-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多