jq fornece um rico idioma de expressão para selecionar elementos de um documento JSON.
Assim, é semelhante ao comando sel
de xmlstartlet
(que recebe uma expressão XPath).
Por exemplo, para extrair uma lista das versões disponíveis do kernel do CentOS 7 no oceano digital - em um formato de registro:
$ jq '[ .kernels[] | select(.name | test("^CentOS 7 x64")) | del(.name)
| "\(.version) \(.id)"] | .[]' kernels.json
Ou o mesmo simplificou um pouco:
jq '.kernels[] | select(.name | test("^CentOS 7 x64")) |
"\(.version) \(.id)" ' kernels.json
Onde o json pode ser obtido assim:
$ curl -o kernels.json -X GET -H "Content-Type: application/json" \
-H "Authorization: Bearer $bearer" \
"https://api.digitalocean.com/v2/droplets/$droplet/kernels?page=1&per_page=1000"
Há também ObjectPath , uma linguagem de consulta diferente para JSON - embora jq pareça estar mais disponível (por exemplo, é empacotado no Fedora 23).
Reutilizar esses snippets de consulta em programas é facilmente possível, por exemplo, existem várias ligações para jq (por exemplo, para Python ) e o ObjectPath também está disponível como módulo Python.