aws-shell 上的 jmespath 查询
jmespath query on aws-shell
我需要从 AWS CLOUDFORMATION 中提取名称中包含特定字符串的所有堆栈。
我使用 aws-shell
中的以下命令
aws cloudformation describe-stacks --query "Stacks[?contains(StackName, 'STRING_A')][StackName,StackId]" --output text | tr '\t' ';'
而且我能够提取我需要的所有信息。
问题是我还需要搜索另一个字符串(假设 STRING_B)...正确的命令是什么?如何在“?contains”中插入 OR 条件?
我做了几次尝试,但是 none 已经成功了。
例如
aws cloudformation describe-stacks --query "Stacks[?contains(StackName, 'STRING_A'||'STRING_B')][StackName,StackId]" --output text | tr '\t' ';'
但是这个解决方案只提取满足第一个条件的记录(STRING_A)
对于我的应用程序,除了 "contain",我还可以使用 "ends_with"..... problem/question 是相同的:-)
感谢您的帮助,在此先感谢您
上下文
- AWS 上的 Jmespath 查询 shell
问题
- 如何在包含字符串的查询中指定
or-expression
解决方案
- 将之前更改为之后
之前
Stacks[?contains(StackName, 'STRING_A'||'STRING_B')]
之后
Stacks[? (contains(StackName, 'STRING_A') || contains(StackName, 'STRING_B')) ]
我需要从 AWS CLOUDFORMATION 中提取名称中包含特定字符串的所有堆栈。 我使用 aws-shell
中的以下命令aws cloudformation describe-stacks --query "Stacks[?contains(StackName, 'STRING_A')][StackName,StackId]" --output text | tr '\t' ';'
而且我能够提取我需要的所有信息。
问题是我还需要搜索另一个字符串(假设 STRING_B)...正确的命令是什么?如何在“?contains”中插入 OR 条件?
我做了几次尝试,但是 none 已经成功了。
例如
aws cloudformation describe-stacks --query "Stacks[?contains(StackName, 'STRING_A'||'STRING_B')][StackName,StackId]" --output text | tr '\t' ';'
但是这个解决方案只提取满足第一个条件的记录(STRING_A)
对于我的应用程序,除了 "contain",我还可以使用 "ends_with"..... problem/question 是相同的:-)
感谢您的帮助,在此先感谢您
上下文
- AWS 上的 Jmespath 查询 shell
问题
- 如何在包含字符串的查询中指定
or-expression
解决方案
- 将之前更改为之后
之前
Stacks[?contains(StackName, 'STRING_A'||'STRING_B')]
之后
Stacks[? (contains(StackName, 'STRING_A') || contains(StackName, 'STRING_B')) ]