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.