Canalizando algum JSON, quero poder usar um curinga no teste usado com select()
:
curl example.com/json | jq 'select(.[].properties.type == "dev*")'
Eu esperava que ele imprimisse qualquer coisa com um tipo que começasse com dev
, por exemplo development
, devel
, devil
, mas isso não acontece.
É possível usar um curinga com select()
in jq
?
Responder1
Você pode considerar ocomeça com()função. Usando seu exemplo:
curl example.com/json | jq '.[].properties | select(.type | startswith("dev"))'
Responder2
Como mostra Satō Katsura, seu exemplo onde você deseja obter todas as propriedades que possuem um tipo quecomeça coma string dev
é obtida pela jq
expressão
.[].properties | select(.type | startswith("dev"))
No entanto, você pode fazer correspondências mais elaboradas com expressões regulares usandoa test
função:
.[].properties | select(.type | test("^dev"))
O jq
utilitário usa o tipo PCRE de expressões regulares, conforme implementado peloBiblioteca de expressões regulares Oniguruma(link da Wikipédia).