[英]jq: one jq command to update multiple values in Json file
我有以下 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 文件中的所有值,output 應該重定向到 final.json 文件。
簡而言之,使用“|” 代替 ','。
例如
.products[].attributes.artifactDetails.url = "abc"
| .products[].cookbookName = "cookbook"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.