Logo
Published on

Expresiones Regulares en Linux

Authors

Las Expresiones Regulares (RegEx) son patrones utilizados para buscar y manipular texto. En la terminal de Linux, las expresiones regulares son extremadamente útiles para filtrar, buscar, y procesar datos de texto de manera eficiente.

El comando grep es una de las herramientas más comunes que utiliza expresiones regulares.

Linux Wallpaper

Expresiones Regulares Básicas

Cadenas Literales:

Coinciden con el texto exacto.

Ejemplo: grep "hola" archivo.txt busca todas las líneas que contienen la palabra "hola".

Metacaracteres:

Caracteres con significados especiales.

. : Coincide con cualquier carácter excepto una nueva línea. Ejemplo: grep "h.la" archivo.txt encuentra "hola", "hela", etc.

* : Coincide con cero o más ocurrencias del carácter anterior. Ejemplo: grep "ho*la" archivo.txt encuentra "hla", "hola", "hoooola", etc.

^ : Coincide con el inicio de una línea. Ejemplo: grep "^hola" archivo.txt encuentra líneas que comienzan con "hola".

$ : Coincide con el final de una línea. Ejemplo: grep "hola$" archivo.txt encuentra líneas que terminan con "hola".

Grupos y Alternativas:

[] : Define un conjunto de caracteres. Ejemplo: grep "h[aeiou]la" archivo.txt encuentra "hala", "hela", "hila", "hola", "hula".

| : Alternativa lógica (OR). Ejemplo: grep "hola|adios" archivo.txt encuentra líneas que contienen "hola" o "adios".

Escapes: \ para utilizar metacaracteres como caracteres literales. Ejemplo: grep "\.txt" archivo.txt encuentra ".txt" en el texto.

Flags más comunes de grep

Ignorar Mayúsculas y Minúsculas: grep -i "error" log.txt busca "error", "Error", "ERROR", etc., en log.txt.

Buscar Recursivamente en Directorios: grep -r "error" /var/log/ busca "error" en todos los archivos dentro del directorio /var/log/.

Mostrar Números de Línea: grep -n "error" log.txt muestra las líneas que contienen "error" junto con sus números de línea.

Buscar Palabras Completas: grep -w "error" log.txt busca la palabra completa "error" (no coincidirá con "errors" o "error404").

Invertir Coincidencias: grep -v "error" log.txt muestra todas las líneas que no contienen "error".

Metacaracteres Adicionales:

\d: cualquier dígito (equivalente a [0-9])

\D: cualquier carácter que no sea un dígito

\w: cualquier carácter de palabra (equivalente a [a-zA-Z0-9_])

\W: cualquier carácter que no sea de palabra

\s: cualquier espacio en blanco (espacios, tabs, etc.)

\S: cualquier carácter que no sea espacio en blanco

\n: nueva línea

\t: tabulador

+: uno o muchos

?: cero o uno

{}: cantidades. Ejemplo: \d{2,4}coincide con entre dos y cuatro dígitos consecutivos.

Para utilizar estas características avanzadas con grep, generalmente necesitarás la opción -P para habilitar las expresiones regulares Perl (PCRE), que son más poderosas que las básicas.

Buscar Fechas Formateadas (por ejemplo, YYYY-MM-DD): grep -P "\d{4}-\d{2}-\d{2}" archivo.txt coincide con fechas en el formato de cuatro dígitos, un guión, dos dígitos, un guión, y dos dígitos (e.g. 2023-12-25).

Buscar Direcciones de Correo Electrónico: grep -P "\b\w+@\w+\.\w+\b" archivo.txt coincide con direcciones de correo electrónico simples (e.g. usuario@dominio.com).

Las expresiones regulares y el comando grep son poderosos para la manipulación de texto en la terminal, permitiendo realizar búsquedas complejas, filtrar datos y automatizar tareas de procesamiento de texto de manera eficiente.

Página para practicar Expresiones Regulares: https://regexone.com/

Meme RegEx