使用jmespath过滤嵌套数组(使用az cli)

时间:2019-01-14 15:28:28

标签: azure-cli jmespath

我想知道TXT记录中的值在DNS中是否已经可用:

az network dns record-set txt show -g myresourcegroup -z 'mydomain' -n 'mytxtvalues'

这是json结果的一部分,全部关于:

 "txtRecords": [
    {
      "value": [
        "abc"
      ]
    },
    {
      "value": [
        "def"
      ]
    }
  ]

我尝试了很多查询。这些是我期望工作的2。

az network dns record-set txt show -g myresourcegroup -z 'mydomain.com' -n 'mytxtvalues' --query txtRecords[?value[?starts_with(@, 'abc')]]

az network dns record-set txt show -g myresourcegroup -z 'mydomain.com' -n 'mytxtvalues' --query txtRecords[*].value[?starts_with(@, 'abc')]]

结果是:

  

第1行char:123   + ...'mytxtvalues'--query txtRecords [?value [?starts_with(@,'abc')...   +〜源文本中无法识别的标记。在线:1字符:124   + ...'mytxtvalues'--query txtRecords [?value [?starts_with(@,'abc')] ...   +〜参数列表中缺少参数。

似乎无法识别用于过滤数组的@。但是我不知道如何查询。

要知道列表中是否已存在abc值,什么是正确的查询?

1 个答案:

答案 0 :(得分:1)

您需要使用以下命令:

-o tsv

如果只需要输出字符串,则可以附加参数tinymce.init({ selector: 'textarea', init_instance_callback : function(editor) { var freeTiny = document.querySelector('.mce-notification'); freeTiny.style.display = 'none'; } }); 。希望对您有帮助。