【问题标题】:sed search and replace item within double quotessed 搜索和替换双引号内的项目
【发布时间】:2019-04-25 09:46:22
【问题描述】:

我只需要使用 sed 来搜索文本文件并替换一个可能是不同值的数字。

这是我需要修改的行。

"Value1": "60",

我知道我能做到:

sed -i 's/"60"/"70"/' 文件.txt

但这太可能在文件中找到其他项目,并且无论值如何都不允许我更改它。

我想要做的是替换“Value1”匹配后第二个双引号内的任何值。

我知道这可以做到,但我的语法不正确。

【问题讨论】:

  • 您的输入是 JSON 文件吗?如果是这样,请使用jq

标签: regex sed


【解决方案1】:

另一个答案中的命令也将替换 e 之后的值。 G。 "Value2":。大概你更想要这个:

sed -i 's/"Value1": ".*"/"Value1": "70"/' file.txt

【讨论】:

  • 这个版本的代码非常适合我的目的。谢谢!
【解决方案2】:

在 gnu sed 上试试

sed -E 's/("Value1":\s*")60(",)/\170\2' file.txt

                          ^        ^

更改两个指出的数字,第一个是您搜索的数字,第二个是您替换它的数字

【讨论】:

    猜你喜欢
    • 2016-08-10
    • 1970-01-01
    • 2015-10-04
    • 2014-09-13
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 2022-01-27
    相关资源
    最近更新 更多