- Published on
Expresiones Regulares en Linux
- Authors
- Name
- Gonzalo Gramaglia
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.
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/