AWK es una poderosa herramienta de procesamiento de texto y análisis de datos en Linux. Su nombre proviene de las iniciales de sus creadores: Aho, Weinberger y Kernighan. AWK permite filtrar, formatear y manipular líneas de texto de forma muy eficiente, lo que lo hace ideal para administradores de sistemas y desarrolladores.
1. ¿Qué es AWK?
AWK es un lenguaje de programación orientado a patrones. Funciona leyendo archivos línea por línea, aplicando reglas de búsqueda y ejecutando acciones sobre las líneas que coinciden. Es comúnmente usado con archivos CSV, logs de sistema, resultados de comandos, y más.
2. Sintaxis básica
La estructura general de un comando AWK es:
awk 'patrón { acción }' archivo
- patrón → Condición que debe cumplir la línea para ejecutar la acción.
- acción → Qué hacer con la línea (imprimir, modificar, calcular).
Ejemplo simple:
awk '{ print $1 }' archivo.txt
Imprime la primera columna de cada línea del archivo archivo.txt.
3. Ejemplos prácticos
Filtrar líneas que contienen una palabra
awk '/error/ { print $0 }' syslog.log
Muestra todas las líneas del log que contienen la palabra error.
Imprimir columnas específicas
awk '{ print $2, $5 }' datos.txt
Imprime la segunda y quinta columna del archivo datos.txt.
Calcular sumas o promedios
Supongamos un archivo ventas.txt con cantidades en la segunda columna:
awk '{ total += $2 } END { print "Total:", total }' ventas.txt
Suma todas las cantidades y muestra el total al final.
Usar delimitadores personalizados
Si los campos están separados por comas:
awk -F',' '{ print $1, $3 }' datos.csv
4. Buenas prácticas
- Siempre prueba tus scripts AWK con archivos de ejemplo antes de procesar datos importantes.
- Usa variables y estructuras de control para scripts más complejos.
- Combina AWK con grep, sed y otros comandos para un flujo de trabajo potente.
5. Conclusión
AWK es una herramienta esencial en Linux para manipular texto y analizar datos de manera rápida y eficiente. Con unos pocos comandos puedes filtrar logs, calcular totales o extraer información crítica de archivos estructurados. Aprender AWK mejora significativamente tu productividad en la línea de comandos.
Quería dejar aquí otra opción que me ha ido muy bien, ha sido la opción, NR>1, gracias a esto te puedes saltar la primera línea y tantas líneas como indiques.
NR –> «Number Record greater than 1»
– NR = Número de línea actual
– >1 = Mayor que 1
ls -l /mnt/tareas | awk ‘NR>1 { print $9 }’ > folders.txt
Resultado: Procesa solo desde la línea 2 en adelante, crea una lista con todas las carpetas que hay en /mnt/tareas saltando la primera linea que siempre es una línea en blanco.