J'ai une liste d'objets qui ressemblent à ceci:
[
{
"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"
}
]
Maintenant, je voudrais regrouper et saisir cela par composant et attribuer une liste d'ips à chacun des composants:
{
"name1": [
"1.1.1.1",
"1.1.1.2"
]
},{
"name2": [
"1.1.1.3",
"1.1.1.4"
]
}
Je l'ai compris moi-même. Je commence par regrouper par .component
, Puis je crée simplement de nouvelles listes d'ips qui sont indexées par le composant du premier objet de chaque groupe:
jq ' group_by(.component)[] | {(.[0].component): [.[] | .ip]}'