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>
retornartrue
para essa entrada e não produzir saída, caso contrário -
contains(element)
- o filtro produztrue
seelement
estiver completamente contido na entrada -
any
- o filtro recebe como entrada uma matriz de valores booleanos e produztrue
como saída se algum dos elementos da matriz fortrue
A saída:
"Station 17200"