如何使用 --query 删除 az 命令输出中的重复项

How to remove duplicates in the az command output using --query

命令 az resource list --resource-group MYRG --query "[].{type:type}"

输出

[
{
"type": "Microsoft.Network/networkInterfaces"
},
{
"type": "Microsoft.Network/networkInterfaces"
},
{
"type": "Microsoft.Network/networkSecurityGroups"
},
{
"type": "Microsoft.Network/networkSecurityGroups"
}
]

尝试了以下命令但没有成功

$ az 资源列表 --resource-group MYRG --query [?输入 == "Microsoft.Web/serverFarms"] bash: Microsoft.Web/serverFarms: 没有那个文件或目录 参数 --query:无效 jmespath_type 值:'[?' 要了解有关 --query 的更多信息,请访问:'https://docs.microsoft.com/cli/azure/query-azure-cli'

az resource list --resource-group MYRG --query "[].{type:type}"

您可能在特定资源组下有多个相同资源类型的资源,建议您通过添加另一个过滤器(如名称和类型,如下所示)来列出资源,并检查 cmdlet 是否提供任何重复值

az resource list --resource-group <resource-groupname> --query "[].{type:type,name:name}"

$ az resource list --resource-group MYRG --query [? type == "Microsoft.Web/serverFarms"]

看起来上面的命令有句法错误你可以尝试下面的命令来列出资源组下'Microsoft.Web/serverFarms'类型的资源吗?

az resource list --resource-group <resource-groupname> --query "[?type == 'Microsoft.Web/serverFarms'].{name:name,type:type}"`

这里是filter the array using AzureCLI

的参考文档

注意:在JMESPath 中,字符串始终用单引号(') 括起来。如果您在过滤谓词中使用双引号作为字符串的一部分,您将得到空输出。