如何用JMESPath(AWS CLI --query)提取含数字后接字母的环境名?
用JMESPath结合AWS CLI实现批量提取特定格式的环境名
可以实现,JMESPath支持matches函数来做正则匹配,刚好能解决你这个批量提取末尾为数字加字母的环境名的需求。
针对你提供的JSON数据,对应的AWS CLI查询语句如下:
aws <your-command> --query "environments[?matches(env, '.*[0-9][a-z]$')].env"
说明:
matches(env, '.*[0-9][a-z]$')是核心逻辑:.*匹配环境名开头的任意字符[0-9]匹配一个数字[a-z]匹配一个小写字母(如果需要支持大写可改成[a-zA-Z])$限定匹配必须在字符串结尾
- 这个查询会从
environments数组中过滤出符合条件的对象,最后只提取env字段的值。
用你给出的测试数据,执行后会返回:
[ "dev01b", "dev01g" ]
这样就不用再逐个写ends_with的组合,不管新增多少符合格式的环境名,都能自动匹配到。
内容的提问来源于stack exchange,提问作者dplvs
相关产品推荐
相关产品推荐

