2016-11-26 7 views
1

このJSONスニペットがあれば、jqを使って特定の "instance-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 channelから 'Goldfish'ありがとうございます。 「金魚」が私の魅力のように分かち合い、働くというコマンドがあります:

.machines | to_entries[] | select(.value."instance-id" == "wdc7ae").key 
関連する問題