使用 JQ 命令行处理器搜索和提取值

Search and extract value using JQ command line processor

我有一个 JSON 文件与以下内容非常相似:

[
  {
    "uuid": "832390ed-58ed-4338-bf97-eb42f123d9f3",
    "name": "Nacho"
  },
  {
    "uuid": "5b55ea5e-96f4-48d3-a258-75e152d8236a",
    "name": "Taco"
  },
  {
    "uuid": "a68f5249-828c-4265-9317-fc902b0d65b9",
    "name": "Burrito"
  }
]

我想弄清楚如何使用 JQ 命令行处理器首先找到我输入的 UUID,并根据该输出关联项目的名称。因此,例如,如果我输入 UUID a68f5249-828c-4265-9317-fc902b0d65b9,它应该搜索 JSON 文件,找到匹配的 UUID,然后 return 名称 Burrito。我在 Bash 中这样做。我意识到除了 JQ 之外,它可能还需要一些外部逻辑。我会继续考虑它并稍后在这里更新。我知道我可以用一种过于复杂的方式来做到这一点,但我知道可能有一种非常简单的 JQ 方法可以在一两行中做到这一点。请帮助我。

https://shapeshed.com/jq-json/#how-to-find-a-key-and-value

您可以使用 select:

jq -r  --arg query Burrito '.[] | select( .name == $query ) | .uuid ' tst.json