如何检查jq列表中是否存在精确匹配

问题描述 投票:0回答:1

我试图在 Docker 注册表中找到与特定镜像存储库匹配的标签。

curl -X GET http://my-registry-ip-address/v2/ancean-api/tags/list\

default: {"name":"ancean-api","tags":["v1.0.0","v19.0.0","v11.1.1"]}

如何检查上面结果输出的 json 数据中是否存在 v1.0.0(example) 标签?


我试过了

curl -X GET http://my-registry-ip-address/v2/ancean-api/tags/list | jq '.tags | select(. == v1.0.19)'

jq文档 jq文档尝试使用select但失败。 无论使用哪个标签,上面的命令都会成功。

curl -X GET http://my-registry-ip-address/v2/ancean-api/tags/list | jq '.tags | .[]' | grep "v1.0.0"

我尝试将其与 grep 一起使用但失败了。

shell jq
1个回答
0
投票

您可以使用

IN
function 来测试包含性,这会产生一个布尔值:

IN(.default.tags[]; "v1.0.0")

此外,

--exit-status
(或
-e
flag可以根据结果设置退出状态。

© www.soinside.com 2019 - 2024. All rights reserved.