¿Cómo filtrar una matriz de objetos por valores de propiedad de elemento usando jq?
Me gusta filtrar archivos json usandojq:
jq . some.json
Dado el json que contiene una matriz de objetos:
{
"theList": [
{
"id": 1,
"name": "Horst"
},
{
"id": 2,
"name": "Fritz"
},
{
"id": 3,
"name": "Walter"
},
{
"id": 4,
"name": "Gerhart"
},
{
"id": 5,
"name": "Harmut"
}
]
}
Quiero filtrar esa lista para mostrar solo los elementos con id que tengan los valores 2 y 4, por lo que el resultado esperado es:
{
"id": 2,
"name": "Fritz"
},
{
"id": 4,
"name": "Gerhart"
}
¿Cómo filtro el json usando jq? He jugado con select y map, pero no tengo ninguno de esos para trabajar, por ejemplo:
$ jq '.theList[] | select(.id == 2) or select(.id == 4)' array.json
true