【问题标题】:What is this mysterious jq failures?这是什么神秘的jq故障?
【发布时间】:2016-11-06 23:26:53
【问题描述】:

我已经看到了这个问题。我想这与特殊字符有关。我已经阅读了 jq 手册并引用了该字段但仍然失败,我尝试了带/不带括号

abc@uswest1aprod 13:49:59 ~
   $ cat test | jq .
{
  "bus_v320161103-12-00-44": {
    "aliases": {
      "bus_v3": {}
   },
    "mappings": {
      "business": {
        "dynamic": "strict",
        "_all": {
          "enabled": false
        }
      }
    }
  }
abc@uswest1aprod 13:52:33 ~
   $ cat test | jq ."bus_v320161103-12-00-44"
jq: error: null and number cannot be subtracted
abc@uswest1aprod 13:53:09 ~
   $ cat test | jq .["bus_v320161103-12-00-44"]
error: bus_v320161103 is not defined
.[bus_v320161103-12-00-44]  1 compile error

【问题讨论】:

    标签: jq


    【解决方案1】:

    您需要引用您的过滤器,这样它就不会被 shell 解释...

    $ jq '."bus_v320161103-12-00-44"' test
    

    没有它,它实际上是这样传递的:

    .bus_v320161103-12-00-44
    

    访问名为bus_v320161103 的字段并减去12,然后是00,然后是44

    【讨论】: