¿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}' archivo
Por ejemplo:
awk '{print $1}' archivo.txt
Este 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.txt
Este 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/passwd
Con -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.txt
Este 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.txt
Se 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.txt
Este 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.txt
Imprime 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.