gpt4 book ai didi

regex - 用 JQ 和正则表达式替换 JSON 中的值

转载 作者:行者123 更新时间:2023-12-03 22:09:56 25 4
gpt4 key购买 nike

我有以下 JSON,我想在其中更改“图像”字符串的“标签”。

{
"taskDefinition": {
"containerDefinitions": [
{
"name": "php",
"image": "xxxxxx.dkr.ecr.eu-west-1.amazonaws.com/repo/php:latest",
"cpu": 0,
"memory": 512
},
{
"name": "nginx",
"image": "xxxxxx.dkr.ecr.eu-west-1.amazonaws.com/repo/nginx:latest",
"cpu": 0,
"memory": 256
}
],
"family": "service-be"
}
}

它应该变成:
{
"taskDefinition": {
"containerDefinitions": [
{
"name": "php",
"image": "xxxxxx.dkr.ecr.eu-west-1.amazonaws.com/repo/php:new",
"cpu": 0,
"memory": 512
},
{
"name": "nginx",
"image": "xxxxxx.dkr.ecr.eu-west-1.amazonaws.com/repo/nginx:new",
"cpu": 0,
"memory": 256
}
],
"family": "service-be"
}
}

当然,“最新”可以是任何东西。

到目前为止,我找到了以下正则表达式子来修改字符串。
'.taskDefinition.containerDefinitions[].image | sub("(?<repo>.*:).*";  \(.repo)new")'

但我想就地编辑它们并保留整个 JSON。
到目前为止,我尝试更改该值未成功。
我可以将图像值更改为固定字符串,但不能更改为替换的原始值。

我已经尝试了几种变体:
'.taskDefinition.containerDefinitions[].image |= . | sub("(?<repo>.*:).*"; "\(.repo)new")'

似乎我可以简单使用的版本(在 Bitbucket 管道中)没有 walk 功能,所以我会避免使用它。

最佳答案

哦,经过几次尝试才找到它

'.taskDefinition.containerDefinitions[].image |= sub("(?<repo>.*:).*"; "\(.repo)new")'

关于regex - 用 JQ 和正则表达式替换 JSON 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55048593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com