以防万一,我的原始 json 如下所示:
{
"taskDefinition": {
"containerDefinitions": [
{
"name": "web",
"image": "my-image",
"environment": [
{
"name": "DB_HOST",
"value": "localhost"
},
{
"name": "DB_USERNAME",
"value": "user"
}
]
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我想就地修改匹配键的值,如下所示:
jq '.taskDefinition.containerDefinitions[0].environment[] | select(.name=="DB_USERNAME") | .value="new"' json
我得到了输出
{
"name": "DB_USERNAME",
"value": "new"
}
Run Code Online (Sandbox Code Playgroud)
但我想要更像就地修改或原始的整个 json 并修改新值,如下所示:
{
"taskDefinition": {
"containerDefinitions": [
{
"name": "web",
"image": "my-image",
"environment": [
{
"name": "DB_HOST",
"value": "localhost"
},
{
"name": "DB_USERNAME",
"value": "new"
}
]
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用 …