¿Cómo usar el comando awk en Linux?
El comando awk es una herramienta poderosa y versátil para procesar y analizar texto en sistemas Linux. Su uso es esencial para quienes trabajan con archivos de texto, informes o manipulación de datos desde la línea de comandos. Este artículo explica en detalle qué es awk, cómo funciona y presenta ejemplos prácticos que te ayudarán a dominar su uso.
¿Qué es el comando awk?
awk es un lenguaje de programación orientado al procesamiento de texto. Su nombre proviene de las iniciales de sus creadores: Alfred Aho, Peter Weinberger y Brian Kernighan. awk permite recorrer archivos línea por línea, dividir cada línea en campos y realizar acciones específicas en base a patrones definidos.
Su sintaxis básica es la siguiente:
awk 'condición {acción}' archivoPor ejemplo:
awk '{print $1}' archivo.txtEste comando imprimirá el primer campo de cada línea del archivo archivo.txt.
Principales usos del comando awk
1. Imprimir columnas específicas
awk '{print $2, $4}' archivo.txtEste comando imprime la segunda y la cuarta columna de cada línea del archivo.
2. Usar awk con delimitadores personalizados
awk -F ":" '{print $1}' /etc/passwdCon -F cambiamos el delimitador de campos. En este caso, se usa : para separar los campos del archivo /etc/passwd.
3. Filtrar líneas con condiciones
awk '$3 > 1000 {print $1, $3}' archivo.txtEste comando imprimirá las líneas donde el valor del tercer campo sea mayor a 1000.
4. Sumar columnas
awk '{suma += $2} END {print "Total:", suma}' archivo.txtSe suman todos los valores del segundo campo y al final se imprime el total.
5. Contar líneas que cumplen una condición
awk '$1 ~ /Linux/ {count++} END {print count}' archivo.txtEste comando cuenta cuántas líneas contienen la palabra «Linux» en el primer campo.
Variables internas de awk
$0: toda la línea.$1,$2, etc.: campos individuales.NF: número de campos en la línea.NR: número de línea actual.
Ejemplo práctico con NR:
awk '{print NR, $1}' archivo.txtImprime el número de línea y el primer campo.
Ejemplo práctico: analizar procesos del sistema
Podemos usar awk junto con ps para analizar procesos:
ps aux | awk '$3 > 10 {print $1, $3, $11}'Esto imprime el usuario, el uso de CPU y el comando de todos los procesos que usan más del 10% de CPU.
awk vs sed: ¿cuál usar?
awk y sed son herramientas distintas aunque complementarias. Mientras que sed se enfoca en buscar y reemplazar texto, awk permite operaciones más complejas como cálculos, condiciones y manipulación por campos. Ambos son indispensables en el arsenal de cualquier usuario de Linux.
Conclusión
El comando awk es una herramienta imprescindible para quienes necesitan procesar texto desde la terminal. Con su capacidad para analizar, filtrar y transformar datos, awk simplifica tareas que de otro modo requerirían scripts complejos. Dominarlo no solo mejora tu eficiencia en Linux, sino que te convierte en un usuario mucho más avanzado.
Ya sea que trabajes con archivos de texto, reportes o salidas de otros comandos, aprender awk te permitirá automatizar y simplificar tu trabajo.
