Comando JQ en Linux con ejemplos

Comando JQ en Linux con ejemplos

JSON es un formato de representación de datos que se utiliza para almacenar y transferir datos entre diferentes capas de una aplicación; almacena datos en clave: pares de valor.

La sintaxis de JSON se derivó de JavaScript, pero en sí misma es independiente del lenguaje. Es compatible con muchos lenguajes de programación; Estos idiomas incluyen código que se puede utilizar para integrar JSON en el programa; Pero desafortunadamente, no podemos trabajar con JSON directamente en Linux Shell, ya que no puede interpretarlo. Para trabajar con JSON en la carcasa de Linux, usamos una mezcla de herramientas como JQ y SED.

Esta publicación nos enseñará a usar el comando JQ para manipular y trabajar con datos JSON en un shell de Linux.

Cómo instalar el comando jq

El comando JQ no está disponible en algunas distribuciones de Linux de forma predeterminada; Debe descargarse en el sistema antes de que pueda usarse en el terminal; Puede descargar el comando jq como cualquier otro paquete en su sistema. En ubuntu 20.04 Use el comando otorgado a continuación para instalar la utilidad JQ:

sudo apt install jq  

Simplemente reemplace apt con el administrador de paquetes de su sistema si está ejecutando una distribución que no sea Ubuntu.

Si está ejecutando una distribución como CentOS 8 que ya tiene JQ por defecto, obtendrá una salida similar a esta:

sudo dnf install jq  

Sintaxis

Ahora podemos comenzar a usar el comando JQ, ya que se ha instalado correctamente en nuestro sistema, pero primero, echemos un vistazo a la sintaxis del comando JQ:

JQ [Opciones] [Archivo ...] JQ [Opciones] --Args [Strings ...] JQ [Opciones] --JSONARGS [JSON_TEXTS ...] 

El comando JQ se puede usar de muchas maneras diferentes; Se puede usar directamente en un archivo JSON y también se puede combinar con varios otros comandos para interpretar los datos de JSON. El comando jq se puede usar con diferentes filtros como el "."," | ",", " o el ".[] " Filtrar para organizar datos JSON.

El comando jq también toma diferentes opciones como argumentos como el --pestaña, --arroyo, --sangría n, --sin tope, y el -L opción de directorio. La sintaxis del comando jq puede parecer compleja al principio, pero se familiarizará con ella una vez que lea el artículo completo.

Cómo organizar los datos JSON usando el comando JQ

La característica más simple y utilizada de los filtros de comando JQ. Se utilizan para organizar y pretificar los datos de JSON al imprimirlos en salida estándar.

  • En este ejemplo, tenemos un archivo JSON nombrado empleado.json y necesitamos emitir los datos a la salida estándar: "trabajadores": "nombre": "John Brooks", "id": "003"
    1"trabajadores": "nombre": "John Brooks", "id": "003"

  • Podemos usar el comando CAT para mostrar los datos:
    empleado de gato.json 

  • Los datos impresos a la salida estándar utilizando el comando CAT no están organizados y desordenados. Podemos organizar estos datos utilizando el comando JQ junto con el '.' filtrar:
    jq '.' empleado.json 

Ahora los datos se han vuelto mucho más organizados, coloridos y más fáciles de entender. Este filtro es especialmente necesario al acceder a los datos de las API; Los datos almacenados en API pueden estar muy desorganizados y confusos.

Cómo acceder a una propiedad usando el comando JQ

El .campo El filtro junto con el comando jq se puede usar para acceder a las propiedades de los objetos en el shell.

  • Si solo queremos acceder e imprimir una propiedad única en la salida estándar, entonces podemos usar el .campo operador. mi.g para acceder a la propiedad del trabajador podemos usar este comando:
    jq '.empleado de trabajadores.json 

  • También podemos acceder a los elementos presentes dentro de la propiedad utilizando el .campo operador. Para acceder al artículo de nombre en la propiedad del trabajador, utilizaremos:
    jq '.trabajadores.Nombre 'Empleado.json 

Cómo acceder a un elemento de matriz usando el comando JQ

También podemos acceder y emitir los elementos presentes dentro de una matriz en un archivo JSON utilizando el .[] operador. Para este ejemplo, vamos a modificar nuestro archivo JSON para que se vea así:

["Nombre": "John Brooks", "Id": "003", "Nombre": "Randy Park", "Id": "053", "Nombre": "Todd Gray", ",", ",", ",", " id ":" 009 "]
1["Nombre": "John Brooks", "Id": "003", "Nombre": "Randy Park", "Id": "053", "Nombre": "Todd Gray", ",", ",", ",", " id ":" 009 "]
  1. Para producir todas las matrices presentes en el archivo JSON, ejecutaremos el comando que se proporciona a continuación:
    jq '.[]' empleado.json 

  2. Para emitir solo la segunda matriz podemos modificar el comando anterior de la siguiente manera:
    jq '.[1] 'Empleado.json 

  3. Recuerda que la matriz comienza en 0

    También podemos acceder a las propiedades presentes dentro de la matriz utilizando el .operador de campo. mi.G Si queremos acceder a la propiedad de nombre en la tercera matriz, ejecutaremos el siguiente comando:

    jq '.[2].Nombre 'Empleado.json 

  4. Del mismo modo, para acceder a todas las propiedades de nombre dentro de las matrices, podemos ejecutar este comando:
    jq '.[].Nombre 'Empleado.json  

Conclusión

El comando JQ se usa para transformar los datos JSON en un formato más legible e imprimirlo en la salida estándar en Linux. El comando JQ se crea alrededor de filtros que se utilizan para encontrar e imprimir solo los datos requeridos de un archivo JSON.

En esta guía práctica, hemos aprendido a usar el comando JQ para organizar y filtrar datos JSON.