我正在尝试使用bash将对象添加到json文件中。例如下面是我想要的最终结果
{
....,
"publishConfig": {
"registry": "http://myapp.org:4873/"
}
}
所以我在脚本中使用以下bash命令
sed -i '$s/}/,\n"publishConfig":{\n\t"registry":"http://myapp.org:4873/"\n}\n}/' somefile.json
但是我不断收到以下错误
字符48:'m的未知选项
有人可以帮我这个正则表达式。提前致谢。
正则表达式中的斜杠未转义。您应该使用反斜杠将其转义:
sed -i '$s/}/,\n"publishConfig":{\n\t"registry":"http:\/\/myapp.org:4873\/"\n}\n}/' somefile.json
但是我建议选择一个具有内置JSON支持的工具,例如PHP。或能够处理JSON的编程语言。
更新
例如,在NodeJS中:
node <<'EOS'
var fs = require("fs");
var filename = 'somefile.json';
var s = fs.readFileSync(filename, {encoding: 'utf-8'});
var o = JSON.parse(s);
o.publishConfig = { registry: "http://myapp.org:4873/" };
fs.writeFileSync(filename, JSON.stringify(o, null, '\t'));
EOS
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句