使用 sed 或 awk 查找并替换 JSON

问题描述 投票:0回答:2

因此,我需要能够使用 sed 或 awk (最好在一行上)将值注入 JSON,并且我无法安装任何外部库来帮助我。

json 的示例类似于

{"version":"0.5363"}

我需要能够为版本注入新值。

任何帮助将不胜感激。

json bash awk sed
2个回答
9
投票

您可以尝试以下 sed 命令,

$ echo '{"version":"0.5363"}' | sed 's/\({"version":"\)[^"]*\("}\)/\1newvalue\2/g'
{"version":"newvalue"}

在上面的 sed 命令中,将

newvalue
替换为您想要的值。添加内联编辑选项
-i
以保存所做的更改。

sed -i 's/regex/replacement/g' file

0
投票

我们可以使用

\s*
来匹配字段之间的任何空格,这在 JSON 中是不相关的:

$ echo '{ "version": "0.5363" }' | sed 's/\s*\("version"\s*:[^"]*\)\s*\"[^"]*\"/\1\"newvalue\"/g'

{ "version": "newvalue" }
© www.soinside.com 2019 - 2024. All rights reserved.