Comando AWK en Linux, uno de tus mejores amigos

¿Cómo usar el comando AWK en la terminal de Linux?

Escrito por domin el 24/03/2025

🧙‍♂️🦄 AWK: Una herramienta muy potente para manipular texto en Linux.

Utilizando linux en el mundo profesional, y también en el personal, más de una vez nos vamos a encontrar en la situación de tener que manipular texto y transformar datos, AWK es una gran herramienta para ello. AWK es una herramienta de línea de comandos en Linux y también es un lenguaje de programación diseñado para procesar textos y datos.

El nombre AWK viene de las iniciales de los creadores:

Aho, Weinberger y Kernighan, todos norte-americanos. En este post vamos a ver cómo funciona.

¿Cómo funciona?

AWK trabaja dividiendo cada línea de un fichero en campos. Por defecto separa estos campos por espacios o tabulaciónes.

Sintaxis básica de AWK

La estructura general para usar el comando awk es:

awk 'condición { acción }' fichero.txt

Ejemplos prácticos.

Imaginate que tenemos el siguiente fichero en un formato txt ejemplo_awk.txt:

PACO 25 Panadero
PEPE 30 Fontanero
JUAN 35 Mecánico
CARLOS 67 Jubilado

Ahora que tenemos el fichero, queremos obtener únicamente los nombres de las personas del fichero, pues con esto lo podríamos hacer:

awk '{print $1}' ejemplo_awk.txt 

🧙 Salida:

PACO
PEPE
JUAN
CARLOS

¿Queremos extraer la profesión? Pues solo tendríamos que cambiar la columna a $3: awk '{print $3} ejemplo_awk.txt

🧙 Salida:

Panadero
Fontanero
Mecánico
Jubilado

🧙‍♂️ ¿Fantástico verdad?

Ahora queremos filtrar con condiciones, queremos extraer únicamente los que estén laboralmente activos, es decir, queremos filtrar por edad y que aparezcan los nombres y las profesiones, pero no la edad:

awk '$2 < 65 {print $1, $3}' ejemplo_awk.txt 

🧙 Salida:

PACO Panadero
PEPE Fontanero
JUAN Mecánico

Ahora como bien se ve, los nombres están en mayúsculas y no mola mucho, entonces vamos a formatear los nombres a algo más correcto con el comando awk:

awk '{print toupper(substr($1,1,1)) tolower(substr($1,2))}' ejemplo_awk.txt

🧙 Salida:

Paco
Pepe
Juan
Carlos

También podemos rizar un poquito el rizo e intentar sacar un cálculo de estos datos, como por ejemplo la media de edad de las personas del fichero:
awk '{sum+=$2} END {print sum/NR}' ejemplo_awk.txt

🧙 Salida:

39.25

Trucos y consejos 🚀

Estos son algunos de los ejemplos que se pueden hacer, son sencillitos y básicos, pero es una herramienta con mucho potencial y se pueden conseguir muchas cosas, dejo que sigas investigando por tu cuenta.