【发布时间】:2020-05-16 00:23:05
【问题描述】:
我有以下 json 文件,我需要使用一个 jq 命令更新所有键值。
{
"changeDetails": {
"chgNumber": "$ASKNOW_CRQ"
},
"environmentType": "$ENV_TYPE",
"fqdn": "$FQDN.visa.com",
"products": [{
"action": "deploy",
"attributes": {
"artifactDetails": {
"url": "$ARTIFACT_URL"
},
"containers": "$CONTAINER_NAME"
},
"productName": "$PACKAGE_ID",
"cookbookName": "visa_springboot"
}],
"tpg": "O&I"}
下面的 jq 命令有效并且只能在 json 文件中的键下面进行更新
. + {environmentType:"xz", fqdn:"abc", tpg:"mnop" }
使用下面的示例,我可以通过运行多个 jq 命令来更新所有键
contents="$(jq '.products.action = "abcde"' test.json)"
echo "${contents}" > test.json
使用下面的命令,它会为每个值更新创建多个 json 文件。
.products[].attributes.artifactDetails.url = "abc", .products[].cookbookName = "cookbook"
我只需要一个 JQ 命令来更新 Json 文件中的所有值,并且输出应该重定向到 final.json 文件。
【问题讨论】: