2016-11-26 3 views
1

이 JSON 스니 j을 감안할 때 jq를 사용하여 특정 "인스턴스 ID"에 해당하는 키의 이름을 추출하려고합니다.json에서 키 추출

나는이 노력하고있어 :

$ X가 모든 기계 번호를 가지고
jq '.machines | keys as $x | if .[]."instance-id"=="wdc7ae" then <some-code-to-get-the-key> else empty end' 

. 그리고 "wdc7ae은"어떤 도움이 많이 감사합니다

{ 
 
    "model": { 
 
    "name": "maas2", 
 
    "controller": "ctr-xenial", 
 
    "cloud": "maas", 
 
    "version": "2.0.1" 
 
    }, 
 
    "machines": { 
 
    "1": { 
 
     "dns-name": "10.4.0.181", 
 
     "instance-id": "wdc7ae", 
 
     "series": "xenial" 
 
    }, 
 
    "2": { 
 
     "dns-name": "10.4.0.182", 
 
     "instance-id": "7mx74d", 
 
     "series": "xenial" 
 
    }, 
 
    "3": { 
 
     "dns-name": "10.4.0.183", 
 
     "instance-id": "rgn3ca", 
 
     "series": "xenial" 
 
    }, 
 
    "4": { 
 
     "dns-name": "10.4.0.184", 
 
     "instance-id": "kmy4bh", 
 
     "series": "xenial" 
 
    }, 
 
    "5": { 
 
     "dns-name": "10.4.0.185", 
 
     "instance-id": "eb38c7", 
 
     "series": "xenial" 
 
    } 
 
    } 
 
}

특정 "인스턴스 ID"값을합니다.

답변

2

# gq irc 채널의 '금붕어'에 감사드립니다. 다음은 '금붕어'가 나와 함께 나누고 매력을 느끼는 명령입니다.

.machines | to_entries[] | select(.value."instance-id" == "wdc7ae").key