jq solução:
jq '.[] | select([.session[].attributeList[]
| .name == "Media" and (.value | contains("node7000"))
] | any ).name' jsonfile
-
.[]- iterando sobre todos os elementos (objetos) da matriz de entrada -
select(<condition>)- a função produz sua entrada inalterada se<condition>retornartruepara essa entrada e não produzir saída, caso contrário -
contains(element)- o filtro produztrueseelementestiver completamente contido na entrada -
any- o filtro recebe como entrada uma matriz de valores booleanos e produztruecomo saída se algum dos elementos da matriz fortrue
A saída:
"Station 17200"