¿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.

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.

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.

  • $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.

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 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.

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.

Publicaciones Similares

Deja una respuesta

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