Como filtrar matriz de objetos por valores de propriedade de elemento usando jq?
Eu gosto de filtrar arquivos json usandojq:
jq . some.json
Dado o json contendo uma matriz de objetos:
{
"theList": [
{
"id": 1,
"name": "Horst"
},
{
"id": 2,
"name": "Fritz"
},
{
"id": 3,
"name": "Walter"
},
{
"id": 4,
"name": "Gerhart"
},
{
"id": 5,
"name": "Harmut"
}
]
}
Quero filtrar essa lista para mostrar apenas os elementos com id com o valor 2 e 4, portanto, a saída esperada é:
{
"id": 2,
"name": "Fritz"
},
{
"id": 4,
"name": "Gerhart"
}
Como filtrar o json usando jq? Eu brinquei com o select e o map, mas ainda não consegui trabalhar com eles, por exemplo:
$ jq '.theList[] | select(.id == 2) or select(.id == 4)' array.json
true