amazon-cloudformation - 用jq替换成云参数值
问题描述
我正在尝试在下面的 Cloudformation 参数文件中用 ParameterValue:test 替换项目 ParameterKey:Project
[{
"ParameterKey": "Project",
"ParameterValue": "<changeMe>"
},
{
"ParameterKey": "DockerInstanceType",
"ParameterValue": "m3.medium"
}]
我正在尝试在 jq 命令下执行
cat config.json |
jq "map(if .ParameterKey == "Project"
then . + {\"ParameterValue\":\"test\"}
else .
end)" > populated_config.json
我收到以下错误
jq: error: Project/0 is not defined at <top-level>, line 1:
map(if .ParameterKey == Project
jq: 1 compile error
解决方案
您过早地关闭了传递给的字符串,因为您jq
没有在等式中转义“Project”的引号。
您可以通过用单引号将表达式括起来来简化,并且不需要转义:
$ cat config.json | jq 'map(if .ParameterKey == "Project" then . + {"ParameterValue":"test"} else . end)'
[
{
"ParameterKey": "Project",
"ParameterValue": "test"
},
{
"ParameterKey": "DockerInstanceType",
"ParameterValue": "m3.medium"
}
]
推荐阅读
- python - 是什么导致这个 return() 创建一个 SyntaxError?
- gnuplot - 如何在 gnuplot 中更改图表中条形的颜色?
- html - 使用 pandoc 将 HTML 中的多行代码片段转换为 Markdown
- c# - 在不知道文件名的情况下从网站下载文件,然后提取并移动到设置位置
- reactjs - 使用 React-Create-App 前端部署 Laravel 后端
- c++ - 使用 std::enable_if 重载函数以避免模板替换错误
- swift - UIDropSession,更新“绿+”系统指标
- .net - Microsoft Excel 中的 Oracle.DataAccess.Client 和 .NET Framework 错误
- python - Python:如何在请求中使用 Chrome cookie
- python - 保存集群坐标集