如何使用sed替换json文件中的key值

时间:2013-03-07 13:16:54

标签: regex sed

我正在尝试替换以下json键值对

"$$RESULT_REPORTER$$":"HTML", to 
"$$RESULT_REPORTER$$":"XML"

使用sed。

这是我正在使用的sed命令,

sed -i 's/^\(\"\$\$RESULT_REPORTER\$\$\"*:*\).*$/\1\"XML\"/' /path/to/file

但问题是我无法在最后保留逗号并且它给我json解析错误。 如何在替换字符串后保留逗号?

1 个答案:

答案 0 :(得分:2)

只需将逗号添加到替换中:

$ sed -i 's/^\(\"\$\$RESULT_REPORTER\$\$\"*:*\).*$/\1\"XML\",/' file
###                                                 HERE ---^

修改

$ cat file
"$$RESULT_REPORTER$$":"HTML",
"$$RESULT_REPORTER$$":"HTML"

$ sed 's/^\("$\$RESULT_REPORTER\$\$":"\)[^"]*/\1XML/' file
"$$RESULT_REPORTER$$":"XML",
"$$RESULT_REPORTER$$":"XML"