您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

Azure CLI 2.0 命令的输出格式

Azure CLI 2.0 使用 json 作为默认输出选项,但可让你通过多种方法设置任何命令的输出。 使用 --output(或者 --out-o)参数可将命令的输出格式设置为下表中所述的输出类型之一。

--output 说明
json json 字符串。 json 为默认值。
jsonc 彩色 json 字符串。
table 包含列标题的表。
tsv 制表符分隔值。

The Azure Cloud Shell (in public preview) is a web-based shell that is preconfigured to simplify using Azure tools. With Cloud Shell, you always have the most up-to-date version of the tools available and you don’t have to install, update or separately log in. Click the Try It button at the top right of a code block to launch the Cloud Shell. Then, use the Copy button to copy and paste the sample code into the Cloud Shell.

You can also open the Cloud Shell from the Azure portal by clicking the Cloud Shell button on the top navigation.

使用 json 选项

以下示例以默认 json 格式显示订阅中的虚拟机列表。

az vm list --output json

结果将采用此格式(为简洁起见,仅显示部分输出)。

[
  {
    "availabilitySet": null,
    "diagnosticsProfile": null,
    "hardwareProfile": {
      "vmSize": "Standard_DS1"
    },
    "id": "/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/DemoVM010",
    "instanceView": null,
    "licenseType": null,
    "location": "westus",
    "name": "DemoVM010",
    "networkProfile": {
      "networkInterfaces": [
        {
          "id": "/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/demorg1/providers/Microsoft.Network/networkInterfaces/DemoVM010VMNic",
          "primary": null,
          "resourceGroup": "demorg1"
        }
      ]
    },
          ...
          ...
          ...   
]

使用 table 选项

使用 table 选项可以提供易于阅读的输出集,但请注意,与前面的.json 示例不同,使用简单 --output table 时,嵌套的对象不会包含在输出中。 在同一示例中使用“table”输出格式会组织有序的最常见属性值列表。

az vm list --out table
Name         ResourceGroup    Location
-----------  ---------------  ----------
DemoVM010    DEMORG1          westus
demovm212    DEMORG1          westus
demovm213    DEMORG1          westus
KBDemo001VM  RGDEMO001        westus
KBDemo020    RGDEMO001        westus

可以使用 --query 参数来自定义要在列表输出中显示的属性和列。 以下示例演示如何只在 list 命令中选择 VM 名称和资源组名称。

az vm list --query "[].{ resource: resourceGroup, name: name }" -o table
Resource    Name
----------  -----------
DEMORG1     DemoVM010
DEMORG1     demovm212
DEMORG1     demovm213
RGDEMO001   KBDemo001VM
RGDEMO001   KBDemo020

使用 tsv 选项

“tsv”输出格式返回不带标题和短划线的、基于文本的制表符分隔输出。 采用这种格式可在需要以某种形式处理文本的其他命令和工具中轻松使用输出。 在前面的示例中使用 tsv 选项会输出制表符分隔结果。

az vm list --out tsv
None    None        /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/DemoVM010    None    None    westus    DemoVM010            None    Succeeded    DEMORG1    None            Microsoft.Compute/virtualMachines    cbd56d9b-9340-44bc-a722-25f15b578444
None    None        /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/demovm212    None    None    westus    demovm212            None    Succeeded    DEMORG1    None            Microsoft.Compute/virtualMachines    4bdac85d-c2f7-410f-9907-ca7921d930b4
None    None        /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/demovm213    None    None    westus    demovm213            None    Succeeded    DEMORG1    None            Microsoft.Compute/virtualMachines    2131c664-221a-4b7f-9653-f6d542fbfa34
None    None        /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/RGDEMO001/providers/Microsoft.Compute/virtualMachines/KBDemo001VM    None    None    westus    KBDemo001VM            None    Succeeded    RGDEMO001    None            Microsoft.Compute/virtualMachines    14e74761-c17e-4530-a7be-9e4ff06ea74b
None    None        /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/RGDEMO001/providers/Microsoft.Compute/virtualMachines/KBDemo02None    None    westus    KBDemo020            None    Succeeded    RGDEMO001    None            Microsoft.Compute/virtualMachinesed36baa9-9b80-48a8-b4a9-854c7a858ece

下一示例演示如何将 tsv 输出传递给 grepcut 等命令,以进一步分析 list 输出中的特定值。 grep 命令仅选择包含文本“RGD”的项,cut 命令仅选择在输出中显示第 8 个字符(制表符分隔)。

az vm list --out tsv | grep RGD | cut -f8
KBDemo001VM
KBDemo020

设置默认的输出格式

可以使用 az configure 命令设置环境或者建立首选项,例如,输出格式的默认设置。 对于一般用途,最方便的默认输出格式为“table”格式 - 系统提示选择输出格式时请选择 3

What default output format would you like?
 [1] json - JSON formatted output that most closely matches API responses
 [2] jsonc - Colored JSON formatted output that most closely matches API responses
 [3] table - Human-readable output format
 [4] tsv - Tab and Newline delimited, great for GREP, AWK, etc.
Please enter a choice [3]: