2016-07-20 14 views
1

My Jsonの構造は以下のとおりです。jq jsonのwhere節に基づく要素の抽出

jqを使用して名前を付けることができるプロジェクトの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" 
    } 

答えて

3

非常に大きい、実際にそれらのオブジェクトの配列である、あなたはこれを行うことができます:あなたが入力を示しているので

$ jq --arg name "ansible" '.[] | select(.name == $name).id' input.json 
0

を非常に大きいです最初にを使用することがあります。この解決策は、見つかった最初の一致のIDを返してから停止します。

first(.[] | if .name == "ansible" then .id else empty end) 
関連する問題