Comandos de los 10 mejores JQ que todo desarrollador de Linux debe saber
- 3935
- 819
- Claudia Baca
JQ es un procesador JSON de línea de comandos versátil para Linux que permite a los desarrolladores analizar, filtrar y transformar los datos JSON de manera rápida y eficiente. Sus potentes características lo convierten en una herramienta indispensable para cualquier persona que trabaje con archivos JSON en sistemas Linux. En este artículo, cubriremos los 10 comandos JQ esenciales principales que todo desarrollador de Linux debe saber para optimizar sus tareas de procesamiento JSON.
Ejemplo de contenido de archivo JSON
Para este tutorial, puede usar el siguiente ejemplo de datos JSON en un archivo llamado aporte.json. Estos datos JSON representan una variedad de personas con sus respectivos nombres, edades, países y direcciones:
["Nombre": "Alice", "Age": 35, "Country": "USA", "Dirección": "Street": "123 Main St", "City": "Nueva York", "Estado ":" Ny "," zip ":" 10001 ", " nombre ":" bob "," edad ": 28," país ":" Canadá "," dirección ": " calle ":" 456 Maple Ave "," City ":" Toronto "," Province ":" On "," Postal_code ":" M5V 1A1 ", " Nombre ":" Charlie "," Age ": 42," Country ": "USA", "Dirección": "calle": "789 Oak st", "Ciudad": "San Francisco", "Estado": "Ca", "Zip": "94102", "Nombre" : "David", "Age": 23, "Country": "Canadá", "Dirección": "calle": "321 Pine st", "Ciudad": "Vancouver", "Provincia": "BC", "Postal_code": "v6b 2p4"]1234567891011121314151617181920212223242526272829303132333435363738394041424344445466 | ["Nombre": "Alice", "Age": 35, "Country": "USA", "Dirección": "Street": "123 Main St", "City": "Nueva York", "Estado ":" Ny "," zip ":" 10001 ", " nombre ":" bob "," edad ": 28," país ":" Canadá "," dirección ": " calle ":" 456 Maple Ave "," City ":" Toronto "," Province ":" On "," Postal_code ":" M5V 1A1 ", " Nombre ":" Charlie "," Age ": 42," Country ": "USA", "Dirección": "calle": "789 Oak st", "Ciudad": "San Francisco", "Estado": "Ca", "Zip": "94102", "Nombre" : "David", "Age": 23, "Country": "Canadá", "Dirección": "calle": "321 Pine st", "Ciudad": "Vancouver", "Provincia": "BC", "Postal_code": "v6b 2p4"] |
Guardar este contenido JSON en un archivo llamado "aporte.json " y úsela como la entrada para los diversos comandos JQ en el tutorial. Estos datos de muestra lo ayudarán a comprender y practicar mejor los diferentes comandos y técnicas JQ descritas en el artículo.
10 ejemplos de comando JQ para desarrolladores de Linux
- Pretty imprimir datos JSON
Para imprimir bonitos datos JSON, simplemente pase el archivo JSON al comando JQ seguido de un período (
.
)jq '.' aporte.json
- Recuperar una clave JSON específica
Para extraer el valor de una clave específica de un objeto JSON, use la siguiente sintaxis:
jq '.entrada de llave.json1 jq '.entrada de llave.json Por ejemplo, extraer el valor del "nombre" clave, use:
jq '.entrada de nombre '.json
- Acceder a los valores de JSON anidados
Para acceder a los valores de JSON anidados, use el punto (
jq '.llave1.llave2.entrada Key3 '.json.
) notación:1 jq '.llave1.llave2.entrada Key3 '.json Por ejemplo, extraer el valor del "ciudad" llave anidada bajo "DIRECCIÓN", usar:
jq '.DIRECCIÓN.aportación de la ciudad.json
- Iterar sobre matrices JSON
Usa los soportes cuadrados (
[]
) para iterar sobre las matrices JSON:jq '.[]' aporte.json
Para extraer claves específicas de cada objeto dentro de la matriz, use la tubería (
|
) Operador:jq '.[] | .entrada de llave.json
- Filtrar datos JSON
Para filtrar datos JSON basados en condiciones específicas, use la función Seleccionar:
jq '.[] | seleccionar(.clave == "Valor") 'Entrada.json1 jq '.[] | seleccionar(.clave == "Valor") 'Entrada.json Por ejemplo, para filtrar objetos en una matriz con un "edad" mas grande que 30, usar:
jq '.[] | seleccionar(.Edad> 30) 'Entrada.json
- Mapear y transformar datos JSON
Para mapear y transformar los datos JSON, use los aparatos ortopédicos (
jq '.[] | Key1: .Key1, Key2: .entrada 2 'Entrada.json)
1 jq '.[] | Key1: .Key1, Key2: .entrada 2 'Entrada.json Por ejemplo, para crear un nuevo objeto JSON con solo el "nombre" y "edad" llaves, use:
jq '.[] | nombre: .nombre Edad: .entrada 'Entrada.json
- Combinar múltiples archivos JSON
Para fusionar dos archivos JSON, use el
*
operador:JQ -S '.[0] * .[1] 'Archivo1.archivo json2.json
- Realizar operaciones aritméticas
JQ puede realizar operaciones aritméticas en valores numéricos de JSON:
jq '.numero 1 + .entrada número2 '.json1 jq '.numero 1 + .entrada número2 '.json Por ejemplo, para calcular la suma de dos números en un archivo JSON, use:
jq '.numero 1 + .entrada número2 '.json
- Ordenar datos de JSON
Para ordenar los datos JSON basados en una clave específica, use el 'Ordenar por' función:
jq '.[] | Ordenar por(.clave) 'Entrada.json1 jq '.[] | Ordenar por(.clave) 'Entrada.json Por ejemplo, para ordenar una matriz de objetos por el "edad" clave, use:
jq '.[] | Ordenar por(.edad) 'Entrada.json
- Datos del Grupo JSON
Para el grupo de datos JSON basados en una clave específica, use el 'agrupar por' función:
JQ 'Group_by (.clave) 'Entrada.json1 JQ 'Group_by (.clave) 'Entrada.json Por ejemplo, para agrupar una matriz de objetos por el "país" clave, use:
JQ 'Group_by (.país) 'aportes.json
Conclusión
Estos 10 comandos JQ esenciales principales ofrecen una base sólida para los desarrolladores de Linux que trabajan con archivos JSON. Dominar estos comandos lo ayudará a analizar, filtrar y manipular los datos JSON de manera más eficiente, mejorando en última instancia su flujo de trabajo de desarrollo.
A medida que obtenga experiencia con JQ, descubrirá características y técnicas aún más avanzadas que satisfacen sus necesidades específicas. La herramienta de línea de comandos JQ es un activo invaluable para cualquier desarrollador que trabaje con datos JSON en sistemas Linux, y saber estos elementos esenciales servirá como un punto de partida fuerte en su viaje para convertirse en un usuario de JQ Power.
Para expandir aún más su conocimiento de JQ, considere sumergirse en la documentación oficial de JQ (https: // stedolan.github.io/jq/manual/) y explorar recursos comunitarios, como tutoriales, publicaciones de blog y foros. A medida que continúe agudizando sus habilidades JQ, desbloqueará todo el potencial de esta poderosa herramienta de procesamiento JSON, por lo que es una parte integral de su Kit de herramientas de desarrollo de Linux.
- « Comprensión 2> y 1 en Bash una guía para principiantes
- Comprender la diferencia entre 'Git Pull' y 'Git Fetch' »