Expresiones regulares en Linux (regex): guía práctica 2026

expresiones-regulares
expresiones-regulares

Las expresiones regulares, también conocidas como regex, son patrones que permiten buscar, filtrar, validar y manipular texto de forma precisa. Se utilizan en programación, administración de sistemas, editores de texto, herramientas de línea de comandos y análisis de archivos.

En este artículo veremos qué son las expresiones regulares, cómo funcionan sus símbolos básicos y cómo aplicarlas con ejemplos prácticos. El objetivo es que puedas entender patrones comunes y utilizarlos para encontrar coincidencias en texto, logs, comandos o archivos de configuración.

👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis

👉 También te dejo por aquí una guía de comandos Linux por categorías

BRE vs ERE: dos modos de expresiones regulares

  • BRE (básicas): modo tradicional.
  • ERE (extendidas): más cómodo (menos escapes).

En la práctica:

  • grep suele usar BRE por defecto.
  • grep con la opción para extendidas usa ERE.

Tabla de las expresiones regurales

ExpresiónSignificadoEjemploCoincide con
.Cualquier carácter, excepto salto de líneac.sacasa, cosa, cusa
^Inicio de una línea o cadena^HolaLíneas que empiezan por Hola
$Final de una línea o cadenafin$Líneas que terminan en fin
*Cero o más repeticionesgo*gleggle, gogle, google
+Una o más repeticionesgo+glegogle, google
?Cero o una repeticióncolou?rcolor, colour
{n}Exactamente n repeticiones[0-9]{3}123, 456
{n,}n o más repeticiones[0-9]{2,}12, 1234
{n,m}Entre n y m repeticiones[0-9]{2,4}12, 123, 1234
[abc]Cualquier carácter dentro del grupoc[ao]sacasa, cosa
[^abc]Cualquier carácter que no esté en el grupo[^0-9]Letras, símbolos o espacios
[a-z]Rango de caracteres[a-z]+linux, regex
[0-9]Cualquier número del 0 al 9[0-9]+123, 2024
\dDígito numérico\d+123, 45
\DCualquier carácter que no sea dígito\D+linux, abc
\wLetra, número o guion bajo\w+usuario_1
\WCualquier carácter que no sea \w\W+!, -, espacio
\sEspacio en blancohola\smundohola mundo
\SCualquier carácter que no sea espacio\S+texto, abc123
()Agrupa una parte del patrón(ab)+ab, abab
``Alternativa lógica, significa “o”`linux
\Escapa caracteres especiales\.Un punto literal .

Tools habituales para expresiones regulares

  • grep: buscar patrones.
  • sed: sustituciones y transformaciones.
  • awk: patrones + acciones por campos.

Si trabajas mucho con texto, también te puede interesar: Comando awk.

Metacaracteres esenciales

  • . cualquier carácter.
  • ^ inicio de línea.
  • $ fin de línea.
  • * cero o más repeticiones del elemento anterior.
  • [] clase de caracteres.
  • [^] clase negada.

Ejemplos:

# Líneas que empiezan por "Error"
grep '^Error' archivo.log

# Líneas que terminan con un punto
grep '\.$' texto.txt

# Contiene "abc" + cualquier carácter + "x"
grep 'abc.x' archivo.txt

Cuantificadores (ERE) y rangos

En ERE (por ejemplo, grep en modo extendido) dispones de cuantificadores como más, opcional y rangos:

# Uno o más espacios
grep -E ' +' archivo.txt

# Número de 1 a 3 dígitos
grep -E '^[0-9]{1,3}$' archivo.txt

Alternancia y agrupación (ERE)

# Coincide con "cat" o "dog"
grep -E 'cat|dog' archivo.txt

# Coincide con "http" o "https"
grep -E '^https?://' urls.txt

En GNU sed puedes habilitar ERE con la opción extendida:

sed -E 's/colou?r/COLOR/g' archivo.txt

Clases POSIX (más portables)

  • [[:digit:]] dígitos
  • [[:alpha:]] letras
  • [[:alnum:]] alfanumérico
  • [[:space:]] espacios
grep -E '^[[:digit:]]+$' archivo.txt

Recetas útiles con grep

Búsqueda recursiva con número de línea:

grep -R --line-number --color=auto -E 'pattern' /ruta

Ignorar mayúsculas y minúsculas:

grep -i -E 'error|fail' archivo.log

Mostrar contexto:

grep -n -C 2 -E 'ERROR' archivo.log

Error típico: regex vs glob del shell

No es lo mismo un comodín del shell (glob) que una expresión regular. Por eso conviene usar comillas para que el shell no interprete caracteres:

grep -E '.*\.log$' lista.txt

Mini recetario (patrones prácticos)

# Email “útil” para logs (no perfecto)
grep -E '[[:alnum:]._%-]+@[[:alnum:].-]+\.[[:alpha:]]{2,}' archivo.txt

# IPv4 simple
grep -E '(^|[^0-9])([0-9]{1,3}\.){3}[0-9]{1,3}([^0-9]|$)' archivo.txt

# Fecha tipo 2026-05-13
grep -E '^[0-9]{4}-[0-9]{2}-[0-9]{2}$' archivo.txt

Conclusión

Las expresiones regulares son una herramienta muy potente para trabajar con texto de forma rápida y flexible. Aunque al principio pueden parecer difíciles, entender sus elementos básicos como caracteres, rangos, cuantificadores y anclas permite crear patrones útiles para muchas tareas.

Dominar las expresiones regulares ayuda a mejorar la productividad en Linux, programación, análisis de logs y automatización. Con práctica, los patrones regex se convierten en una habilidad esencial para buscar información, validar datos y procesar texto de manera eficiente.

📌 Referencia oficial: grep(1) — man7.org

Comentarios

No hay comentarios aún. ¿Por qué no comienzas el debate?

Deja una respuesta

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