2017-04-05 8 views
4

でグループとキーが、私はこのように見えるオブジェクトのリストを持っている:JQ:プロパティ

[ 
    { 
    "ip": "1.1.1.1", 
    "component": "name1" 
    }, 
    { 
    "ip": "1.1.1.2", 
    "component": "name1" 
    }, 
    { 
    "ip": "1.1.1.3", 
    "component": "name2" 
    }, 
    { 
    "ip": "1.1.1.4", 
    "component": "name2" 
    } 
] 

今、私はコンポーネントであることグループとキーに好きとのそれぞれにIPSのリストを割り当てたいですコンポーネント:

{ 
    "name1": [ 
    "1.1.1.1", 
    "1.1.1.2" 
    ] 
},{ 
    "name2": [ 
    "1.1.1.3", 
    "1.1.1.4" 
    ] 
} 

答えて

5

私はそれを自分で考え出しました。 I .componentによる最初のグループとそしてちょうど各グループの最初のオブジェクトのコンポーネントによってインデックス付けされているIPSの新しいリストを作成します。

jq ' group_by(.component)[] | {(.[0].component): [.[] | .ip]}'