繁体   English   中英

如何使用 jq 命令将数据永久添加到 json 文件

[英]How to permanently add data to json file using jq command

下面是我的 taskdef.json 文件

{
    "containerDefinitions": [
        {
            "name": "container_name",
            "image": "",
            "essential": true,
            "logConfiguration": {
                "logDriver": "awslogs",
                "options": {
                    "awslogs-group": "/ecs/taskdef",
                    "awslogs-region": "us-east-2",
                    "awslogs-stream-prefix": "ecs"
                }
            }
         }
     ]
  }

我正在使用环境变量附加到这个文件

export IMAGE=########.dkr.ecr.us-west-1.amazonaws.com/container-repo:latest

我已运行以下命令在 containerDefinitions 下输入图像,输出将其显示在其中,但它不会永久附加到 taskdef.json 文件中。

jq ".containerDefinitions[].image=\"$IMAGE\"" taskdef.json

我还尝试了以下命令将输出添加到新文件,但我有多个 json 数据注入,所以这种方式不起作用。

jq ".containerDefinitions[].image=\"$IMAGE\"" taskdef.json > taskdef2.json

无论如何使用相当于 sed -i 的 jq 命令将输入​​永久注入到 json 文件中?

jq 没有像 sed 的-i这样的命令行选项。 如果它在您的计算环境中可用,则避免不得不摆弄临时文件的一种方法是使用spongemoreutils集合的一部分):

jq .... taskdef.json | sponge taskdef.json

(自制用户可以通过以下方式安装spongebrew install sponge

有关sponge的 PowerShell 替代品,请参阅在 moreutils? 中等同于海绵的 Powershell?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM