22 Expresiones regulares (REGEX)
Fecha: 24 de septiembre, 2026
Las expresiones regulares (o REGEX) son patrones de texto que describen un conjunto de strings (cadenas de caracteres). Te permiten buscar, validar y procesar texto de manera flexible y poderosa.
Estructura de una expresión regular
patrón = [caracteres] [metacaracteres] [cuantificadores]
Estructura básica de grep
grep [opciones] "patrón" archivo.txt
Componentes:
grep= Comando[opciones]= Modificadores del comportamiento (opcional)"patrón"= La expresión regular a buscararchivo.txt= El archivo donde buscar
1. Caracteres literales
Son caracteres normales que se buscan tal cual.
grep "hola" archivo.txt
# Busca la palabra "hola" exactamente2. Metacaracteres en REGEX
Son caracteres especiales que tienen significado especial.
grep "h.la" archivo.txt
# Busca "hala", "hila", "hola", "hula", etc.3. Cuantificadores
Especifican cuántas veces debe repetirse un patrón.
grep "ho*la" archivo.txt
# Busca "hla", "hola", "hoola", "hooola", etc.22.1 Diferencia: Wildcards vs REGEX 🔄
Wildcards (en bash)
# Buscar archivos
ls *.txt # Expande a archivos reales
ls [abc]* # Expande a archivos que comienzan con a, b o cContexto: Sistema de archivos
REGEX (en comandos)
# Buscar en contenido de archivos
grep ".*\.txt$" archivo.txt # Busca líneas que terminan en .txt
grep "[abc]" archivo.txt # Busca líneas que contienen a, b o cContexto: Contenido de texto
22.2 Operadores de redirección de datos I/O
Usualmente cuando trabajamos con datos, es necesario pasar el resultado de un comando a otro para hacer un procesamiento de datos apilado, como en un algortimo. Un stream o corriente esta hecha de datos. Es una corriente de datos. Un ejemplo muy familiar es el teclado y la pantalla. El teclado tiene una interfaz en donde por cada tecla presionada, un caracter se guarda en un archivo. Se dice entonces que es una corriente de entrada. Cuando la pantalla nos muestra lo que estamos escribiendo entonces la data sale hacia nosotros y eso convierte a la pantalla en una corriente de salida. Los dispositivos que hacen este tipo de transmisión de datos se llaman dispositivos I/O (input y output). Los operadores que se encargan de esto se conocen como operadores de redirección. Tres importantes son:
| Comando | Función |
|---|---|
> |
Stream de salida de datos. Sobre escribre sobre un archivo. |
>> |
Stream de salida de datos. Adjunta nueva salida a datos preexistentes en un archivo. |
< |
Stream de entrada de datos. Recibe datos para procesamiento con algun comando. |
Crea el archivo
temas_matematicas.txte imprime su contenido empleando los siguientes comandos:echo -e "Álgebra\nGeometría\nCálculo\nEstadística\nProbabilidad\nTopología\nTrigonometría\nAritmética\nCombinatoria\nLógica\nAnálisis\nEcuaciones\nVectores\nMatrices" > temas_matematicas.txt cat temas_matematicas.txtAgrega el tema “Teoría de números” en la última fila empleando “>>”.
echo "Teoría de números" >> temas_matematicas.txt cat temas_matematicas.txtOrdena alfabéticamente el contenido de
temas_matematicas.txt.sort temas_matematicas.txtGuarda los temas ordenados en un nuevo archivo llamado
temas_ordenados.txt.sort temas_matematicas.txt > temas_ordenados.txt cat temas_ordenados.txt
22.2.1 Tabla resumen de metacaracteres 📊
| Metacarácter | Significado | Ejemplo | Coincide con |
|---|---|---|---|
. |
Cualquier carácter | a.o |
ato, amo, ano |
* |
Cero o más | ab*c |
ac, abc, abbc |
+ |
Una o más | ab+c |
abc, abbc |
? |
Cero o una | ab?c |
ac, abc |
[ ] |
Conjunto | a[123]o |
a1o, a2o, a3o |
[^...] |
Negación | a[^0-9]o |
ato, amo |
- |
Rango | [a-z] |
a, b, c, …, z |
^ |
Inicio línea | ^Hola |
Hola mundo |
$ |
Fin línea | mundo$ |
Hola mundo |
\ |
Escape | \. |
. (punto literal) |
( ) |
Agrupación | (ab)+ |
ab, abab |
| |
Alternancia | gato|perro |
gato, perro |
{ } |
Repetición exacta | a{2} |
aa |
22.3 Material suplementario
- RSG Ecuador. Scripts en Bash
- RSG Ecuador. Wildcards y Streams
- RSG Ecuador. Expresiones regulares (regex)
- Wildcard Selection in Bash
- Expresiones regulares