考虑以下json数据,来自Docker镜像nginx:1.25-bookworm
:
# docker pull nginx:1.25-bookworm
# docker image inspect 81be38025439 | jq '.[].Config.Env'
[
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.25.3",
"NJS_VERSION=0.8.2",
"PKG_RELEASE=1~bookworm"
]
#
字符串
我希望能够从这个列表中访问'1.25.3',以标记CI-CD管道构建步骤中的图像。
我已经接近我的目标,如下:
# docker image inspect 0743972990c7 | jq -r '.[].Config.Env[1]'
NGINX_VERSION=1.23.4
型
但是想知道如何通过名称访问项目'NGINX_VERSION',而不是依赖于它将是第二个环境变量的假设。
3条答案
按热度按时间chhkpiq41#
所以从数组中过滤NGINX_VERSION并删除它。
字符串
oxf4rvwz2#
对于给定的任务,我也会使用
startswith
,如KamilCuk's answer中所述。但是如果你需要访问多个值,你可能需要考虑使用INDEX
创建一个查找对象:字符串
然后按字段名访问值(截断第一个
=
字符的index
位置):型
Demo的
mitkmikd3#
下面是一个有用的函数,用于将
key<DELIM>value
形式的字符串数组转换为JSON对象:字符串
然后,所述问题的解决方案可以写为:
型