【问题标题】:changing value of first column in a file using awk使用 awk 更改文件中第一列的值
【发布时间】:2019-03-24 12:19:24
【问题描述】:

我有一个包含多列的 .csv 文件,我想将文件中第一列的值更改为所有行的“正数”,除非它是“负数”

如果我有文件

product,0 0,no way
brand,0 0 0,detergent
product,0 0 1,sugar
negative,0 0 1, sight

我想做

positive,0 0,no way
positive,0 0,detergent
positive,0 0 1,sugar
negative,0 0 1, sight

如何使用 awk 完成此任务?

【问题讨论】:

    标签: awk sed


    【解决方案1】:

    这个 awk 单行代码应该可以帮助您:

    awk -F, -v OFS="," '$1="positive"' file
    

    因为你用sed标记:

    sed 's/[^,]*/positive/' file
    

    OP 的新要求更新:

    awk -F, -v OFS="," '$1="negative"==$1?$1:"positive"' file
    

    或:

    awk -F, -v OFS="," '"negative"==$1||$1="positive"' file
    

    【讨论】:

    • 肯特,我刚刚编辑了问题,查看了我的数据。谢谢!
    【解决方案2】:

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

    sed '/^negative,/!s/^[^,]*/positive/' file
    

    如果第一个单词不是negative,则将其更改为positive

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 2020-02-25
      • 2019-06-09
      • 1970-01-01
      相关资源
      最近更新 更多