Comando Bash JQ

Comando Bash JQ
Los datos JSON se utilizan para varios fines. Pero los datos JSON no se pueden leer fácilmente del archivo JSON utilizando script bash como otros archivos normales. JQ La herramienta se usa para resolver este problema. JQ El comando funciona como sed y asombrar comando, y utiliza un lenguaje específico de dominio para trabajar con datos JSON. JQ no es un comando incorporado. Entonces, debe instalar este comando para usarlo. Cómo puede instalar y aplicar JQ El comando para leer o manipular los datos JSON se muestra en este tutorial.

Instalación JQ

Ejecute el siguiente comando para instalar JQ en Ubuntu.

$ sudo apt-get install jq

Lectura de datos JSON

Supongamos que ha declarado una variable JSON con nombre Jsondata en la terminal y correr JQ comando con esa variable para imprimir el contenido de esa variable.

$ JSondata = '["libro": "Php 7", "Publicación": "Apress",
"Libro": "React 16 Essentials", "Publicación": "Packt"] '
$ echo "$ JSondata" | jq '.'

Lectura de datos JSON con opción -c

-La opción C se usa con el comando JQ para imprimir cada objeto JSON en cada línea. Después de ejecutar el siguiente comando, se imprimirá cada objeto de la variable JSondata.

$ echo "$ JSondata" | jq -c '.[] '

Leer un archivo JSON

El comando JQ también se puede usar para leer el archivo JSON. Crear un archivo json llamado estudiantes.JSON con el siguiente contenido para probar los siguientes comandos de este tutorial.

Estudiantes.json

[

"Roll": 3,
"Nombre": "Micheal",
"Batch": 29,
"Departamento": "CSE"
,

"Roll": 55,
"Nombre": "Lisa",
"Batch": 34,
"Departamento": "BBA"
,

"Rollo": 12,
"Nombre": "John",
"Batch": 22,
"Departamento": "inglés"

]

Ejecute el siguiente comando para leer a los estudiantes.archivo json.

$ jq '.' Estudiantes.json

Lectura del archivo JSON con '|'

Puedes usar '|' Símbolo de la siguiente manera para leer cualquier archivo JSON.

Estudiantes de $ Cat.JSON | jq '.'

Lectura de valores clave de una sola clave

Puede leer fácilmente cualquier objeto en particular de un archivo JSON usando JQ dominio. En Estudiantes.json, Hay cuatro objetos. Estos son Roll, nombre, lote y departamento. Si quieres leer el valor de departamento clave solo de cada registro y luego ejecutar JQ comandar de la siguiente manera.

$ jq '.[] | .Estudiantes del departamento.json

Leyendo múltiples claves

Si desea leer dos o más valores de objeto de los datos JSON, mencione los nombres de los objetos separando la coma (,) en el comando jq. El siguiente comando recuperará los valores de nombre y departamento llaves.

$ jq '.[] | .nombre, .Estudiantes del departamento.json

Eliminar la clave de los datos de JSON

JQ El comando se usa no solo para leer los datos de JSON, sino también para mostrar datos eliminando la clave particular. El siguiente comando imprimirá todos los valores clave de Estudiantes.json Archivo excluyendo lote llave. mapa y deleño la función se usa en JQ ordenar hacer la tarea.

$ jq 'mapa (del (Del (.lote)) 'Estudiantes.json

Valores de mapeo

Sin eliminar la clave de los datos JSON, puede usar la función de mapa con el comando jq para varios fines. Los valores numéricos de los datos JSON se pueden aumentar o disminuir mediante la función MAP. Crea un archivo JSON llamado Número.json con el siguiente contenido para probar los siguientes comandos.

[40,34,12,67,45]

Ejecute el siguiente comando para agregar 10 con cada valor de objeto de Números, JSON.

$ jq 'mapa (.+10) 'Números.json

Ejecute el siguiente comando para restar 10 de cada valor de objeto de Números, JSON.

$ jq 'mapa (.-10) 'Números.json

Búsqueda de valores por índice y longitud

Puede leer objetos del archivo JSON especificando el índice y la longitud particulares. Crea un archivo JSON llamado colores.json con los siguientes datos.

["Rojo", "verde", "azul", "amarillo", "púrpura"]

Ejecute el siguiente comando para leer dos valores a partir del tercer índice de colores.archivo json.

$ jq '.[2: 4] 'colores.json

Puede especificar la longitud o el índice inicial para leer datos del archivo JSON. En el siguiente ejemplo, el número de valor de datos solo se proporciona. En este caso, el comando leerá cuatro datos del primer índice de colores.json.

$ jq '.[: 4] 'colores.json

Puede especificar el punto de partida solo sin ningún valor de longitud en JQ el comando y el valor pueden ser positivos o negativos. Si el punto de partida es positivo, el índice contará desde el lado izquierdo de la lista y comenzando desde cero. Si el punto de partida es negativo, el índice contará desde el lado derecho de la lista y comenzando desde una. En el siguiente ejemplo, el punto de partida es -3. Entonces, los últimos tres valores de los datos se mostrarán.

$ jq '.[-3:] 'colores.json

Cuando trabaje con datos JSON y desee analizar o manipular datos de acuerdo con sus requisitos, el comando JQ lo ayudará a facilitar su tarea.