20 Ejemplos de awk

20 Ejemplos de awk

En este artículo se presentan 20 ejemplos de awk para ayudarte a mejorar tus habilidades de programación. Awk es un lenguaje de programación de línea de comandos que se utiliza para procesar archivos de texto y extraer información de ellos. Con awk, puedes filtrar, buscar, reemplazar y manipular datos con facilidad. Los ejemplos que se presentan aquí te ayudarán a comprender mejor la sintaxis de awk y a utilizar sus funcionalidades para resolver distintos problemas.

📋 Aquí podrás encontrar✍
  1. Búsquedas dentro de un archivo
    1. Ejemplo 1: Filtrar un archivo por palabra clave
    2. Ejemplo 2: Contar ocurrencias de palabra clave
    3. Ejemplo 3: Buscar texto específico en una columna de un archivo CSV
  2. Reemplazo de texto en un archivo
    1. Ejemplo 4: Reemplazar un texto en un archivo
    2. Ejemplo 5: Reemplazar texto en un archivo solo en filas que cumplen una condición
    3. Ejemplo 6: Reemplazar texto en un archivo solo en una columna específica
  3. Filtrado y procesamiento de datos
    1. Ejemplo 7: Sumar una columna de números en un archivo CSV
    2. Ejemplo 8: Mostrar solo los campos que cumplen una condición
    3. Ejemplo 9: Imprimir solo filas distintas en un archivo
    4. Ejemplo 10: Calcular la longitud de un campo en un archivo CSV
  4. Manipulación de la estructura del archivo
    1. Ejemplo 11: Agregar un encabezado a un archivo CSV
    2. Ejemplo 12: Eliminar encabezado de un archivo CSV
    3. Ejemplo 13: Concatenar dos o más archivos
  5. Manipulación avanzada de datos
    1. Ejemplo 14: Ordenar filas por campo específico
    2. Ejemplo 15: Duplicar filas en un archivo CSV
    3. Ejemplo 16: Combinar datos de dos archivos en uno solo
  6. Conclusión
  7. Preguntas frecuentes
    1. ¿Qué es awk?
    2. ¿Qué significa NR en awk?
    3. ¿Qué significa FNR en awk?
    4. ¿Cómo se pueden utilizar múltiples delimitadores en awk?

Búsquedas dentro de un archivo

Ejemplo 1: Filtrar un archivo por palabra clave

Si deseas buscar una palabra clave en un archivo específico, puedes utilizar awk de la siguiente manera:

awk '/palabraclave/' archivo.txt

Esto devuelve todas las líneas que contienen la palabra clave "palabraclave". Si quieres buscar palabras claves específicas, puedes usar este comando:

awk '/palabraclave1|palabraclave2/' archivo.txt

Este comando devuelve todas las líneas que contienen "palabraclave1" o "palabraclave2".

Ejemplo 2: Contar ocurrencias de palabra clave

Si deseas contar el número de veces que se repite una palabra clave en un archivo, puedes utilizar el siguiente comando:

awk '/palabraclave/ {++contador} END {print contador}' archivo.txt

Esto devuelve el número de ocurrencias de la palabra clave "palabraclave" en el archivo.

Ejemplo 3: Buscar texto específico en una columna de un archivo CSV

Si tienes un archivo CSV y deseas buscar un texto específico en una columna en particular, puedes utilizar awk con el siguiente comando:

awk -F, '$2~/texto/ {print $0}' archivo.csv

Esto busca el texto en la segunda columna del archivo CSV y devuelve todas las filas que contienen ese texto.

Reemplazo de texto en un archivo

Ejemplo 4: Reemplazar un texto en un archivo

Si deseas reemplazar un texto en un archivo, puedes utilizar awk con el siguiente comando:

awk '{sub(/textoViejo/, "textoNuevo"); print}' archivo.txt

Esto encuentra la primera ocurrencia de "textoViejo" y lo reemplaza con "textoNuevo" en cada línea del archivo.

Ejemplo 5: Reemplazar texto en un archivo solo en filas que cumplen una condición

Si deseas reemplazar texto en un archivo solo en filas que cumplen una condición específica, puedes utilizar el siguiente comando:

awk '/condicion/ {gsub(/textoViejo/, "textoNuevo"); print} !/condicion/ {print}' archivo.txt

Esto busca las líneas que cumplen la condición y reemplaza todas las ocurrencias de "textoViejo" con "textoNuevo". Luego, imprime todas las líneas del archivo, incluyendo las que no cumplen la condición.

Ejemplo 6: Reemplazar texto en un archivo solo en una columna específica

Si deseas reemplazar texto en un archivo solo en una columna específica, puedes utilizar el siguiente comando:

awk -F, '{gsub(/textoViejo/, "textoNuevo", $2); print}' archivo.csv

Esto busca todas las ocurrencias de "textoViejo" en la segunda columna del archivo CSV y las reemplaza con "textoNuevo".

Filtrado y procesamiento de datos

Ejemplo 7: Sumar una columna de números en un archivo CSV

Si deseas sumar una columna de números en un archivo CSV, puedes utilizar el siguiente comando:

awk -F, '{suma += $2} END {print suma}' archivo.csv

Esto suma todos los valores en la segunda columna del archivo CSV y devuelve la suma total.

Ejemplo 8: Mostrar solo los campos que cumplen una condición

Si deseas mostrar solo los campos que cumplen una condición específica, puedes usar el siguiente comando:

awk '$2>10 {print $0}' archivo.txt

Esto muestra todas las filas del archivo en las que el segundo campo es mayor que 10.

Ejemplo 9: Imprimir solo filas distintas en un archivo

Si deseas imprimir solo las filas distintas en un archivo, puedes utilizar el siguiente comando:

awk '!a[$0]++' archivo.txt

Esto imprime solo las filas únicas en el archivo.

Ejemplo 10: Calcular la longitud de un campo en un archivo CSV

Si deseas calcular la longitud de un campo en un archivo CSV, puedes utilizar el siguiente comando:

awk -F, '{print length($2)}' archivo.csv

Esto imprime la longitud del segundo campo en cada fila del archivo.

Manipulación de la estructura del archivo

Ejemplo 11: Agregar un encabezado a un archivo CSV

Si deseas agregar un encabezado a un archivo CSV, puedes utilizar awk con el siguiente comando:

awk 'BEGIN {print "campo1, campo2, campo3"} {print}' archivo.csv

Esto agrega un encabezado al archivo CSV.

Ejemplo 12: Eliminar encabezado de un archivo CSV

Si deseas eliminar el encabezado de un archivo CSV, puedes utilizar el siguiente comando:

awk 'NR>1 {print}' archivo.csv

Esto elimina la primera línea del archivo CSV, que se considera el encabezado.

Ejemplo 13: Concatenar dos o más archivos

Si deseas concatenar dos o más archivos, puedes usar el siguiente comando:

awk 'FNR==1 && NR!=1{next;}{print}' *.txt > resultado.txt

Esto concatena todos los archivos .txt en el directorio actual y los guarda en un archivo llamado resultado.txt.

Manipulación avanzada de datos

Ejemplo 14: Ordenar filas por campo específico

Si deseas ordenar las filas de un archivo por un campo específico, puedes utilizar el siguiente comando:

awk -F, '{print $2","$1}' archivo.csv | sort

Esto imprime las filas del archivo CSV ordenadas por el segundo campo y luego por el primer campo.

Ejemplo 15: Duplicar filas en un archivo CSV

Si deseas duplicar filas en un archivo CSV, puedes utilizar el siguiente comando:

awk '{print; print}' archivo.csv

Esto imprime cada fila dos veces en el archivo CSV.

Ejemplo 16: Combinar datos de dos archivos en uno solo

Si deseas combinar los datos de dos archivos en uno solo, puedes utilizar el siguiente comando:

awk 'FNR==NR {a[$1]=$2; next} {print $0","a[$1]}' archivo1.csv archivo2.csv

Esto combina las filas de ambos archivos en uno solo, utilizando el campo común entre ambos archivos.

Conclusión

En este artículo has aprendido 20 ejemplos de awk para trabajar con archivos de texto. Desde filtrar y reemplazar texto hasta el procesamiento y manipulación avanzada de datos, awk es una herramienta útil para programadores que trabajen con archivos de texto en su trabajo diario. Inténtalo tú mismo y descubre cómo la potencia de awk puede ayudarte en tu trabajo.

Preguntas frecuentes

¿Qué es awk?

Awk es un lenguaje de programación de línea de comandos que se utiliza para procesar archivos de texto y extraer información de ellos.

¿Qué significa NR en awk?

NR es una variable especial en awk que hace referencia al número de registro actual (es decir, la línea actual) en el archivo.

¿Qué significa FNR en awk?

FNR es una variable especial en awk que hace referencia al número de registro actual dentro del archivo actual. Esta variable es útil cuando estás trabajando con múltiples archivos.

¿Cómo se pueden utilizar múltiples delimitadores en awk?

Puedes utilizar múltiples delimitadores en awk utilizando la opción -F y separando los delimitadores con una barra vertical. Por ejemplo:

awk -F'[,:]' '{print $1,$3}' archivo.txt

Esto utiliza como delimitadores la coma y los dos puntos y devuelve los campos 1 y 3 de cada línea del archivo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir