Comando JQ no Linux com exemplos
- 4417
- 1225
- Ms. Travis Schumm
O JSON é um formato de representação de dados usado para armazenar e transferir dados entre diferentes camadas de um aplicativo; Ele armazena dados na chave: pares de valor.
A sintaxe de JSON foi derivada de JavaScript, mas é independente da linguagem. É compatível com muitas linguagens de programação; Esses idiomas incluem código que pode ser usado para integrar o JSON ao programa; Porém, infelizmente, não podemos trabalhar com o JSON diretamente no Linux Shell, pois não pode interpretá -lo. Para trabalhar com JSON no shell Linux, usamos uma mistura de ferramentas como JQ e SED.
Esta postagem nos ensinará a usar o comando jq para manipular e trabalhar com dados JSON em um shell Linux.
Como instalar o comando jq
O comando JQ não está disponível em algumas distribuições Linux por padrão; Ele precisa ser baixado no sistema antes que ele possa ser usado no terminal; Você pode baixar o comando jq como qualquer outro pacote em seu sistema. No Ubuntu 20.04 Use o comando abaixo-dado para instalar o utilitário jq:
sudo apt install jq
Basta substituir o apt pelo gerente de pacotes do seu sistema, se você estiver executando uma distribuição diferente do Ubuntu.
Se você estiver executando uma distribuição como o CentOS 8, que já possui JQ por padrão, você obterá uma saída semelhante a isso:
sudo dnf install jq
Sintaxe
Agora podemos começar a usar o comando jq, pois ele foi instalado com sucesso em nosso sistema, mas primeiro, vamos dar uma olhada na sintaxe do comando jq:
jq [options] [arquivo…] jq [opções] --args [strings…] jq [options] --jsonargs [json_texts…]
O comando JQ pode ser usado de várias maneiras diferentes; Ele pode ser usado diretamente em um arquivo json e também pode ser combinado com vários outros comandos para interpretar dados JSON. O comando jq pode ser usado com diferentes filtros, como o ““."," | ",", "
ou o ““.[] ”
filtrar para organizar dados JSON.
O comando JQ também tem opções diferentes como argumentos como o --aba
, --fluxo
, --recuo n
, --não bufado
, e a -eu opção de diretório. A sintaxe do comando jQ pode parecer complexa no começo, mas você se familiarizará com ele depois de ler o artigo inteiro.
Como organizar dados JSON usando o comando jq
O recurso mais simples e usado dos filtros de comando JQ. Eles são usados para organizar e prettificar dados JSON ao imprimi -los para saída padrão.
- Neste exemplo, temos um arquivo json chamado funcionário.JSON E precisamos gerar os dados para a saída padrão: "Workers": "Name": "John Brooks", "Id": "003"
1 "Trabalhadores": "Nome": "John Brooks", "Id": "003" - Podemos usar o comando CAT para mostrar os dados:
funcionário do gato.JSON
- Os dados impressos para a saída padrão usando o comando CAT são desorganizados e confusos. Podemos organizar esses dados usando o comando jq junto com o
'.'
filtro:jq '.' funcionário.JSON
Agora os dados se tornaram muito mais organizados, coloridos e mais fáceis de entender. Este filtro é especialmente necessário ao acessar dados das APIs; Os dados armazenados em APIs podem ser muito desorganizados e confusos.
Como acessar uma propriedade usando o comando jq
O .campo
filtrar junto com o comando jq pode ser usado para acessar as propriedades do objeto no shell.
- Se queremos apenas acessar e imprimir uma única propriedade para a saída padrão, podemos usar o
.campo
operador. E.G Para acessar a propriedade do trabalhador, podemos usar este comando:jq '.funcionário dos trabalhadores.JSON
- Também podemos acessar os itens presentes na propriedade usando o
.campo
operador. Para acessar o item de nome na propriedade do trabalhador, usaremos:jq '.trabalhadores.nome 'funcionário.JSON
Como acessar um item de matriz usando o comando jq
Também podemos acessar e produzir os elementos presentes em uma matriz em um arquivo json usando o .[]
operador. Para este exemplo, vamos modificar nosso arquivo JSON, para que pareça o seguinte:
1 | ["Name": "John Brooks", "Id": "003", "Nome": "Randy Park", "Id": "053", "Nome": "Todd Gray", " id ":" 009 "] |
- Para produzir todas as matrizes presentes no arquivo json, executaremos o comando abaixo:
jq '.[]' funcionário.JSON
- Para produzir apenas a segunda matriz, podemos modificar o comando acima do ritmo da seguinte maneira:
jq '.[1] 'funcionário.JSON
- Lembre -se de que a matriz começa em 0
Também podemos acessar as propriedades presentes na matriz usando o .operador de campo. E.G Se quisermos acessar a propriedade Name na terceira matriz, executaremos o seguinte comando:
jq '.[2].nome 'funcionário.JSON
- Da mesma forma, para acessar todas as propriedades do nome dentro de matrizes, podemos executar este comando:
jq '.[].nome 'funcionário.JSON
Conclusão
O comando JQ é usado para transformar os dados JSON em um formato mais legível e imprimi -los na saída padrão no Linux. O comando JQ é construído em torno dos filtros que são usados para encontrar e imprimir apenas os dados necessários de um arquivo json.
Neste guia de instruções, aprendemos a usar o comando jq para organizar e filtrar dados JSON.