【发布时间】:2023-01-29 19:27:32
【问题描述】:
我有一个这样的 json
[{"version": 0.0,"Resources": [ {"TargetService": {"Type": "AWS::ECS::Service","Properties": {"TaskDefinition": "abc","LoadBalancerInfo": {"ContainerName": "def","ContainerPort": 8080}}}} ]}]
我的尝试是更换任务定义从“abc”到“123”的键值和容器名称在一个命令中从“def”到“456”的键值并返回整个更新 json。
这是我试过的
echo $APP_SPEC | jq --arg TASK_DEFINITION "123" '(.[].Resources[].TargetService | select(.Properties)).TaskDefinition |=$TASK_DEFINITION')
但是替换没有正确发生,值被附加在 josn 的末尾,如下所示。
错误回应:
[ { "version": 0, "Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "abc", "LoadBalancerInfo": { "ContainerName": "container_name", "ContainerPort": 8080 } }, "TaskDefinition": "123" } } ] } ]
【问题讨论】: