【问题标题】:How to replace string with incremental value in shell script using awk如何使用awk在shell脚本中用增量值替换字符串
【发布时间】:2018-09-20 18:56:39
【问题描述】:

在 unix 中,我正在做一个 grep ticketnumber 文件名

我得到“票号”:123

我将 123 替换为 124 - 使用 sed -i 's/123/124/g' 文件名

如何在 shell 脚本中的 awk 中执行此操作

【问题讨论】:

  • 所有答案都是根据您显示的示例给出的,但后来您声称您的要求不同,我建议您使用适当的示例和详细信息编辑您的帖子,以便我们可以帮助您。
  • 你能发布一个真实版本的输入文件吗?从您包含的部分来看,它看起来可能是 JSON。创建一个Minimal, Complete, Verifiable Example,以便创建答案的人可以在发布之前测试他们的结果?回复“不,这不是我想要的真的”是非常令人沮丧的。

标签: unix search awk replace auto-increment


【解决方案1】:

你可以使用 awk 的 gsub 命令来做到这一点:

awk '{gsub(/pattern/,"replacement")}' file

参考您的示例,将 123 更改为 124:

awk '{gsub(/123/,"124");}' file

更多信息here

我希望这能回答你的问题。

【讨论】:

    【解决方案2】:

    怎么样:

    $ awk '/ticketnumber/{$2+=1;print}' file
    "ticketnumber": 124
    

    【讨论】:

    • 我有 1000 个 json 文件,我需要为其增加票号。字符串的格式是 "ticketNumber": 1234 我需要把它改成 "ticketNumber": 1235
    • 好吧,让您的问题符合该要求,并发布具有预期输出的适当示例数据。
    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 2016-09-03
    • 2014-11-24
    • 2015-05-05
    • 1970-01-01
    相关资源
    最近更新 更多