Usando comodines con "select()" en jq

Usando comodines con "select()" en jq

Al conectar algo de JSON, quiero poder usar un comodín en la prueba utilizada con select():

curl example.com/json | jq  'select(.[].properties.type == "dev*")'

Esperaba que imprimiera cualquier cosa con un tipo que comenzara con dev, por ejemplo ,, developmentpero no es así.develdevil

¿Es posible utilizar un comodín con select()in jq?

Respuesta1

Podrías considerar elcomienza con()función. Usando tu ejemplo:

curl example.com/json | jq '.[].properties | select(.type | startswith("dev"))'

Respuesta2

Como muestra Satō Katsura, su ejemplo donde desea obtener todas las propiedades que tienen un tipo quecomienza conla cadena devestá dada por la jqexpresión

.[].properties | select(.type | startswith("dev"))

Sin embargo, puedes hacer coincidencias más elaboradas con expresiones regulares usandola testfunción:

.[].properties | select(.type | test("^dev"))

La jqutilidad utiliza el tipo PCRE de expresiones regulares, tal como lo implementa laBiblioteca de expresiones regulares de Oniguruma(Enlace de Wikipedia).

información relacionada