JMESPath 查询将搜索与 ?并在 azure cloudshell bash cli 中包含关键字
JMESPath query on combining search with ? and contains keyword in azure cloudshell bash cli
我正在尝试编写一个 azure cli JMESPath 查询来输出所有包含单词 db
并且属于 osType
windows.
的名称
为此,我编写了以下查询,它通过调用名为 grep
.
的外部 bash 实用程序来工作
但是我无法通过内置函数 contains
.
的 JMESPath 语言过滤来完成它
这是一个有效的查询
az vm list --query "[?storageProfile.osDisk.osType=='Windows'].[name]" -o tsv | grep db
这是我尝试但未能获得结果的查询:
az vm list --query "[?storageProfile.osDisk.osType=='Windows'].[?contains(name,'db')]" -o tsv
你只需要使用 and expression:
鉴于查询:
[?storageProfile.osDisk.osType=='Windows' && contains(name,'db')].name
在JSON
[
{
"name": "db-of-windows-application",
"storageProfile": {
"osDisk": {
"osType": "Windows"
}
}
},
{
"name": "db-of-linux-application",
"storageProfile": {
"osDisk": {
"osType": "Linux"
}
}
},
{
"name": "I-am-not-the-database-you-are-looking-for",
"storageProfile": {
"osDisk": {
"osType": "Windows"
}
}
}
]
这将得到:
[
"db-of-windows-application"
]
我正在尝试编写一个 azure cli JMESPath 查询来输出所有包含单词 db
并且属于 osType
windows.
的名称
为此,我编写了以下查询,它通过调用名为 grep
.
的外部 bash 实用程序来工作
但是我无法通过内置函数 contains
.
的 JMESPath 语言过滤来完成它
这是一个有效的查询
az vm list --query "[?storageProfile.osDisk.osType=='Windows'].[name]" -o tsv | grep db
这是我尝试但未能获得结果的查询:
az vm list --query "[?storageProfile.osDisk.osType=='Windows'].[?contains(name,'db')]" -o tsv
你只需要使用 and expression:
鉴于查询:
[?storageProfile.osDisk.osType=='Windows' && contains(name,'db')].name
在JSON
[
{
"name": "db-of-windows-application",
"storageProfile": {
"osDisk": {
"osType": "Windows"
}
}
},
{
"name": "db-of-linux-application",
"storageProfile": {
"osDisk": {
"osType": "Linux"
}
}
},
{
"name": "I-am-not-the-database-you-are-looking-for",
"storageProfile": {
"osDisk": {
"osType": "Windows"
}
}
}
]
这将得到:
[
"db-of-windows-application"
]