2016-07-20 2 views
1

My Json 구조는 아래와 같습니다.jq json의 where 절을 기반으로 추출 요소

jq를 사용하여 이름을 사용할 수있는 프로젝트의 ID를 어떻게 추출 할 수 있습니까?

는 JSON 파일이

{ 
    "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

https://stedolan.github.io/jq/manual/는 귀하의 의견이 실제로 해당 개체의 배열입니다 가정 매우 큰, 당신이 할 수 있습니다 :

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

당신이 입력을 나타 내기 때문에 매우 큰 경우 첫 번째을 사용할 수 있습니다. 이 솔루션은 발견 된 첫 번째 일치의 ID를 반환 한 다음 중지합니다.

first(.[] | if .name == "ansible" then .id else empty end) 
관련 문제