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 ,, development
pero no es así.devel
devil
¿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 dev
está dada por la jq
expresión
.[].properties | select(.type | startswith("dev"))
Sin embargo, puedes hacer coincidencias más elaboradas con expresiones regulares usandola test
función:
.[].properties | select(.type | test("^dev"))
La jq
utilidad utiliza el tipo PCRE de expresiones regulares, tal como lo implementa laBiblioteca de expresiones regulares de Oniguruma(Enlace de Wikipedia).