我的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"
}
答案 0 :(得分:6)
假设您的输入实际上是这些对象的数组,您可以这样做:
$ jq --arg name "ansible" '.[] | select(.name == $name).id' input.json
答案 1 :(得分:0)
由于您指示输入非常大,因此您可能需要使用第一个。此解决方案将返回找到的第一个匹配项的ID,然后停止。
first(.[] | if .name == "ansible" then .id else empty end)