使用 AWS CLI --query 选项过滤一维数组
Use AWS CLI --query option to filter a 1-dimensional array
是否可以使用 AWS CLI 的 --query 选项(描述 here)来过滤一维数组?我可以在 AWS 网站上找到的所有示例都非常适合地图——但我无法弄清楚简单数组的语法。
考虑在输出中有一个字符串数组的 dynamodb list-tables 命令:
aws dynamodb list-tables
示例输出:
{
"TableNames": [
"Questions",
"Answers",
"Votes"
]
}
假设我想弄清楚 TableNames 是否包含 "Answers"。我试过的语法无效或不起作用。
aws dynamodb list-tables --query 'TableNames[?==`Answers`]'
aws dynamodb list-tables --query 'TableNames[?.==`Answers`]'
aws dynamodb list-tables --query '[?TableNames[*]==`Answers`]'
要引用数组中的当前元素,可以使用 @
字符:
$ aws dynamodb list-tables --query "TableNames[? @ == 'Answers' ]"
[
"Answers"
]
如果您只需要 "does this table name exist in the list of tables" 的 true/false 答案,您还可以使用:
$ aws dynamodb list-tables --query "contains(TableNames, 'Answers')"
true
是否可以使用 AWS CLI 的 --query 选项(描述 here)来过滤一维数组?我可以在 AWS 网站上找到的所有示例都非常适合地图——但我无法弄清楚简单数组的语法。
考虑在输出中有一个字符串数组的 dynamodb list-tables 命令:
aws dynamodb list-tables
示例输出:
{
"TableNames": [
"Questions",
"Answers",
"Votes"
]
}
假设我想弄清楚 TableNames 是否包含 "Answers"。我试过的语法无效或不起作用。
aws dynamodb list-tables --query 'TableNames[?==`Answers`]'
aws dynamodb list-tables --query 'TableNames[?.==`Answers`]'
aws dynamodb list-tables --query '[?TableNames[*]==`Answers`]'
要引用数组中的当前元素,可以使用 @
字符:
$ aws dynamodb list-tables --query "TableNames[? @ == 'Answers' ]"
[
"Answers"
]
如果您只需要 "does this table name exist in the list of tables" 的 true/false 答案,您还可以使用:
$ aws dynamodb list-tables --query "contains(TableNames, 'Answers')"
true