Uso de awk, sed y grep para procesar texto como un/a pro

Uso de awk, sed y grep para procesar texto como un/a pro

Una guía detallada y rica en ejemplos para dominar las herramientas de línea de comandos

Introducción

En el mundo de la administración de sistemas, análisis de logs y procesamiento de datos, las utilidades grep, sed y awk son las aliadas fundamentales de cualquier profesional. Estas herramientas permiten filtrar, transformar y extraer información de archivos de texto de manera rápida y eficiente, sin necesidad de levantar entornos complejos.

En este artículo encontrarás:

  • Conceptos básicos de cada herramienta.
  • Ejemplos prácticos y casos de uso reales.
  • Buenas prácticas y combinaciones avanzadas.
  • Referencias a documentación oficial.

1. grep: búsqueda y filtrado de líneas

grep (Global Regular Expression Print) es el punto de partida para extraer líneas que coinciden con un patrón. Su fortaleza reside en la sencillez y rapidez.

Sintaxis básica

grep [opciones] patrón archivo

Opción Descripción
-i Ignora mayúsculas y minúsculas.
-v Muestra líneas que no coinciden.
-r Búsqueda recursiva en directorios.
-n Muestra número de línea.

Ejemplos prácticos

  • grep -i error /var/log/syslog: Filtra todas las líneas que contienen error sin importar mayúsculas.
  • grep -r TODO ./proyecto: Busca recursivamente la palabra TODO en el directorio proyecto.

Para más detalles, consulta la documentación oficial de grep.

2. sed: editor de streams

sed (stream editor) permite modificar el contenido de un flujo de texto aplicando comandos de edición sofisticados, sin necesidad de abrir un editor interactivo.

Sintaxis básica

sed [opciones] comando archivo

Expresión Descripción
s/patrón/reemplazo/g Sustituye todas las ocurrencias del patrón.
-i Modifica el archivo en su lugar.
-n Suprime la salida por defecto.

Ejemplos avanzados

  • sed 1,5d archivo.txt: Elimina las líneas de la 1 a la 5.
  • sed -r s/^([0-9]{4})-([0-9]{2})/2/1/g fechas.txt: Reestructura fechas de YYYY-MM a MM/YYYY.
  • sed -n /^Error/ p log.txt: Solo imprime líneas que empiezan con Error.

Más información en la guía oficial de sed.

3. awk: lenguaje de procesamiento de texto

awk es una potente herramienta de programación orientada al procesamiento de archivos de texto estructurados en columnas o campos. Permite ejecutar scripts directamente desde la línea de comandos.

Estructura básica

awk condition { action } archivo

  • condition: filtro que define cuándo aplicar la acción.
  • action: instrucciones a ejecutar, como imprimir o calcular.

Variables y campos

Por defecto, 1, 2, … son los campos separados por espacios/tabs, y NF es el número de campos.

Ejemplos esenciales

  • awk { total = 3 } END { print total } datos.csv: Suma la tercera columna.
  • awk -F, 4 > 100 { print 1, 4 } ventas.csv: Imprime nombre y ventas mayores a 100.
  • awk NR % 2 == 0 archivo.txt: Muestra solo líneas pares.

Consulta el manual oficial de gawk para profundizar.

4. Combinaciones y flujos de trabajo

La verdadera potencia se revela cuando encadenas estas utilidades:

  • grep para extraer líneas relevantes.
  • sed para limpiar o reformatar.
  • awk para análisis numérico o tabular.

Ejemplo completo

Supongamos un archivo de registros access.log con formato Apache:

192.168.1.1 - - [01/Jul/2023:10:00:01  0000] GET /index.html HTTP/1.1 200 1024
...
  

Pipeline para obtener el total de bytes transferidos por códigos 200:

grep  200  access.log 
 sed -E s/. [0-9]{3} ([0-9] )/1/ 
 awk { sum  = 1 } END { print Bytes totales:, sum }
  

5. Buenas prácticas y rendimiento

  • Prioriza grep para reducir el conjunto de datos antes de procesos más costosos.
  • Asegúrate de usar -F en awk si no necesitas expresiones regulares.
  • Evita multiplexar procesos con pipes innecesarios agrupa transformaciones en sed cuando sea posible.
  • Para archivos muy grandes, considera herramientas como ripgrep o parallel.

Conclusión

El dominio de grep, sed y awk transforma tareas tediosas en operaciones ágiles y reproducibles. Con práctica y creatividad, podrás procesar millones de líneas en segundos, generar informes, limpiar datos y mucho más.

Empieza hoy mismo a experimentar con estas herramientas y convierte tus scripts en auténticas obras de arte de la productividad.

Download TXT




Deja una respuesta

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