Usando curingas com “select()” em jq

Usando curingas com “select()” em jq

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 jqexpressão

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

No entanto, você pode fazer correspondências mais elaboradas com expressões regulares usandoa testfunção:

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

O jqutilitário usa o tipo PCRE de expressões regulares, conforme implementado peloBiblioteca de expressões regulares Oniguruma(link da Wikipédia).

informação relacionada