Os filtros jq usados no dia a dia, agrupados por função: alcançar um valor, filtrar e selecionar, trabalhar as coleções, transformar valores e cadeias, reformatar num novo objeto ou array, atualizar caminhos no lugar, ramificar em lógica e lidar com redução avançada, além das flags de linha de comando que moldam a entrada e a saída. Cada linha emparelha o filtro com o resultado que produz.
O jq é um filtro: lê JSON no stdin, corre um pipeline de expressões separadas por pipes e escreve JSON no stdout. O ponto é o valor atual; tudo se constrói sobre ele. A forma mais rápida de aprender é enviar dados reais pelas receitas abaixo e observar a saída. Execute-as como jq 'filtro' ficheiro.json ou curl ... | jq 'filtro'.
Tabela de referência · 65 entradas
Receitas jqExplained
65 of 65 rows
Acesso
A entrada inteira, impressa de forma legível.
O valor numa chave, ou chaves aninhadas.
O valor numa chave cujo nome tem caracteres especiais.
O primeiro elemento de um array (negativo conta do fim).
Cada elemento de um array, ou cada valor de um objeto, na sua própria linha.
O valor na chave, ou null, sem erro quando a chave não existe.
Filtrar e selecionar
A entrada inalterada quando cond é verdadeiro, caso contrário nada.
Aplica expr a cada elemento de um array e recolhe os resultados.
Os nomes das chaves ordenados, ou os valores, de um objeto como array.
O comprimento de um array ou cadeia, ou a contagem de chaves num objeto.
Apenas os elementos cuja age é maior que 18, num único array.
Coleções
Verdadeiro quando pelo menos um, ou quando todos, os elementos são truthy ou passam num filtro.
Verdadeiro quando a chave k existe no objeto; in corre o mesmo teste do lado da chave.
O primeiro elemento, o último, ou apenas as primeiras n saídas de f.
O menor, ou maior, valor num array.
Os números de 0 até n, cada um como a sua própria saída.
Arrays aninhados colapsados num único array plano.
Verdadeiro quando x ocorre algures dentro da entrada; inside inverte os papéis.
Aplica f a cada valor de baixo para cima e reconstrói a entrada inteira.
Transformar
Um array apenas com o campo price de cada elemento.
A soma de um array de números, ou a fusão de um array de objetos.
Coage um valor para cadeia, ou uma cadeia numérica para número.
Codifica a entrada como cadeia JSON ou base64.
Uma cadeia em minúsculas.
Cadeias
Uma cadeia com o valor de expr incorporado no texto.
Substitui todas as ocorrências do padrão, ou apenas a primeira, por s.
Parte uma cadeia num array por um separador, ou cola um array numa cadeia.
Testa uma cadeia contra um padrão, ou extrai as correspondências e capturas com nome.
Remove um prefixo, ou um sufixo, apenas quando presente.
Verdadeiro ou falso: a cadeia começa, ou termina, com s.
Uma cadeia em maiúsculas.
Um array codificado como linha CSV, linha TSV ou argumentos de shell citados.
Reformatar
Um novo objeto apenas com os campos id e name da entrada.
Um array com o name de cada item.
Um array de objetos {key, value} a partir de um objeto.
Um objeto construído a partir de um array de objetos {key, value}.
Elementos agrupados em subarrays pelo seu campo cat.
Ordenar por um campo, ou manter um elemento por id distinto.
Atualização e caminhos
Atualiza o valor na chave executando f sobre ele.
Sobrescreve o valor na chave com v.
Adiciona n ao valor em count, no lugar.
Lê, escreve ou elimina valores em caminhos dados como arrays.
Controlo e lógica
a quando c é verdadeiro, b caso contrário, com elif para mais ramos.
Corre f e, quando f falha, corre g com a mensagem de erro.
Para com um erro que transporta msg, exceto se um try o apanhar.
Nenhuma saída; esse ramo simplesmente desaparece dos resultados.
Combina valores verdadeiro e falso, ou inverte um.
Avançado
Dobra o array inteiro num único total acumulado.
Como reduce, mas emite o estado após cada passo, não apenas o último.
A próxima entrada, ou todas as entradas restantes, puxadas a meio do filtro.
Um valor como texto JSON, ou texto JSON de volta a um valor.
Texto base64 descodificado de volta à cadeia original.
Atribuição profunda na estrutura, criando os níveis em falta pelo caminho.
a se não for null nem falso, caso contrário b (um valor por omissão).
A entrada com uma chave removida.
Todos os caminhos na entrada como array de chaves, de cima para baixo.
Variáveis e CLI
Define $name como cadeia de shell, utilizável dentro do filtro.
Define $name a partir de JSON cru, para números, booleanos, arrays ou objetos.
Define $name como todo o conteúdo de um ficheiro JSON.
Imprime resultados de cadeia crus, sem aspas ou escapes.
Imprime cada resultado compacto numa linha, sem indentação.
Corre o filtro uma vez sobre null, para construir saída a partir do nada.
Lê toda a entrada num único array antes de o filtro correr.
Define o código de saída a partir da última saída, para scripts de shell testarem o resultado.
O valor de uma variável de ambiente, lida dentro do filtro.