【发布时间】:2018-11-16 04:29:16
【问题描述】:
我正在使用 AWS 命令行界面 (CLI) 列出来自 AWS 的一些 AMI 映像。 图像的名称如下:
XY_XYZ_Docker_1.13_XYZ_XXYY
使用时
aws ec2 describe-images --filters 'Name=name,Values="*_Docker_1.13_*"'
它按预期工作。
现在我想为名称过滤器使用正则表达式而不是静态值。 在 AWS 文档中,我阅读了 RegEx is possible 的过滤 我的做法是:
1:
aws ec2 describe-images --filters 'Name=name,Values="[_]Docker[_][0-9][.][0-9]{2}[_]"'
结果总是null。我尝试了引用 RegEx 的不同方式。
2:
[_]Docker[_][0-9][.][0-9]{2}[_]
(不带引号)导致
解析参数“--filters”时出错:预期:“,”,接收到:“D”用于输入: Name=name,Values=[]Docker[][0-9][.][0-9]{2}[_]
3:
*[_]Docker[_][0-9][.][0-9]{2}[_]*
(带星号)导致
错误解析参数'--filters':预期:',',接收:']'输入: Name=name,Values=[_]Docker[_][0-9][.][0-9]{2}[_]
【问题讨论】:
-
您是否考虑将 AWS CLI 的输出通过管道传输到
grep之类的东西,然后使用该工具的正则表达式支持? -
我不想这样做,因为我还有一些过滤器,并且按名称过滤器需要在开头
-
AWS CLI 使用 JMESPath。见:JMESPath Tutorial
标签: amazon-web-services command-line-interface