簡體   English   中英

jq:一個 jq 命令更新 Json 文件中的多個值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM