基于jq json中的where子句提取元素

use*_*605 3 json jq

我的Json结构如下所示.

如何使用jq提取名称为ansible的项目的ID?

json文件非常大

https://stedolan.github.io/jq/manual/

  {
    "id": 38,
    "name": "ansible",
    "path": "ansible",
    "description": "Ansible playbooks, roles, and supporting tools repos"
  },
  {
    "id": 18,
    "name": "Analytics",
    "path": "analytics",
    "description": "Big Data Analytics projects"
  }
Run Code Online (Sandbox Code Playgroud)

Jef*_*ado 7

假设您的输入实际上是这些对象的数组,您可以这样做:

$ jq --arg name "ansible" '.[] | select(.name == $name).id' input.json
Run Code Online (Sandbox Code Playgroud)