我正在尝试使用 bash 将对象添加到 json 文件中。例如下面是我的目标最终结果
{
....,
"publishConfig": {
"registry": "http://myapp.org:4873/"
}
}
Run Code Online (Sandbox Code Playgroud)
所以我在脚本中使用以下 bash 命令
sed -i '$s/}/,\n"publishConfig":{\n\t"registry":"http://myapp.org:4873/"\n}\n}/' somefile.json
Run Code Online (Sandbox Code Playgroud)
但是我不断收到以下错误
char 48: 'm 的未知选项
有人可以帮我解决这个正则表达式吗?提前致谢。
正则表达式中的斜杠是未转义的。你应该用反斜杠转义它们:
sed -i '$s/}/,\n"publishConfig":{\n\t"registry":"http:\/\/myapp.org:4873\/"\n}\n}/' somefile.json
Run Code Online (Sandbox Code Playgroud)
但我建议选择具有内置 JSON 支持的工具,例如 PHP。或者一种能够处理 JSON 的编程语言。
更新
例如,在 NodeJS 中:
sed -i '$s/}/,\n"publishConfig":{\n\t"registry":"http:\/\/myapp.org:4873\/"\n}\n}/' somefile.json
Run Code Online (Sandbox Code Playgroud)