vstupní json:
[
{
"user": "u1"
},
{
"user": "u2",
"groups": [
{
"id": "100001",
"name": "G1"
},
{
"id": "100002",
"name": "G2"
}
]
},
{
"user": "u3",
"groups": [
{
"id": "100001",
"name": "G1"
}
]
}
]
Chci najít všechny uživatele patřící do určité skupiny (hledání podle skupiny name
nebo skupiny id
v groups
pole)
$ jq -r '.[]|select(.groups[].name=="G1" | .user)' json
jq: error (at json:27): Cannot iterate over null (null)
Požadovaný výstupní formát, když hledáte například skupina G1 by být:
u2
u3
Další otázka: Je možné vyrábět čárkami oddělený výstup u2,u3 bez použití externích nástrojů, jako je tr?
--arg id "${id}" --arg name "${name}"
a nemusí se obtěžovat který actuallay má vyhledávání data. f samozřejmě, pokud OP otázku do vyhledávání "název skupiny nebo id skupiny" bylo, aby implementace jednodušší, ale ve skutečnosti potřebuje jen jeden, jeden bude stačit stejně. - Na konci, všechny proměnné uvnitř filtru také musí být deklarovány mimo.