【发布时间】:2013-04-11 08:18:07
【问题描述】:
我有一个 sed 命令来替换格式中的 json 键值对
"XXXXX" : "YYYYY"
或
"XXXXX" : YYYYY
这是我的 sed 命令,
sed -i 's/\("$\$XXXX\$\$\"\s*:\s*\"\)[^\"]*/\1YYYY/'
现在我想修改上面的正则表达式来更新键值对。
例子:
"XXXXX" : "YYYYY"
应该更新为
"XXXXX" : "ZZZZZ"
和
"XXXXX" : YYYYY
应该更新为
"XXXXX" : ZZZZZ
注意区别,如果值是带引号的,值应该用引号更新,而它的值没有引号,它也应该更新它
这是我想出的 sed 命令,但它不起作用。
sed -i 's/\("$\$"qc.testset.ids"\$\$\"\s*:\s*"*\)[^\"]*/\1123123"*/'
我在这里错过了什么?如何让我的正则表达式同时支持这两种格式?
【问题讨论】:
-
所以你想从
"XXXXX" : "YYYYY"传递到"XXXXX" : YYYYY? -
@fedorqui 删除了我描述中的歧义。基本上,我希望我的正则表达式以
"XXXXX" : "YYYYY"和"XXXXX" : YYYYY两种格式更新密钥。 -
对。我做了一些更新以使其更清晰。无论如何,您能否显示所需的输出以使其更容易理解?