Expresiones regulares y comodines
Las expresiones regulares (regex) en Bash son patrones de búsqueda utilizados para encontrar y manipular cadenas de texto de manera eficiente. Aquí hay una breve introducción junto con algunos ejemplos básicos:
Búsqueda simple
Puedes utilizar expresiones regulares para buscar patrones específicos en texto. Por ejemplo, para encontrar todas las líneas que contienen la palabra "bash" en un archivo, puedes usar:
grep 'bash' archivo.txt
Comodines básicos
Los comodines ''
y .
son comunes en expresiones regulares. ''
representa cero o más ocurrencias del carácter anterior, mientras que .
representa cualquier carácter. Por ejemplo, para encontrar todas las líneas que contienen a
seguido de cualquier carácter y luego o
, puedes usar:
grep 'a.o' archivo.txt
Anclas
Las anclas ^
y $
se utilizan para representar el principio y el final de una línea, respectivamente. Por ejemplo, para encontrar líneas que comienzan con Inicio
, puedes usar:
grep '^Inicio' archivo.txt
Clases de caracteres
Las clases de caracteres como [0-9]
representan un solo dígito numérico. Por ejemplo, para encontrar líneas que contienen un número de un solo dígito al principio, puedes usar:
grep '^[0-9]' archivo.txt
Cuantificadores
Los cuantificadores como {n,m}
especifican un rango de repeticiones. Por ejemplo, para encontrar líneas que contienen de 2 a 4 letras a
, puedes usar:
grep 'a\{2,4\}' archivo.txt
Otros ejemplos de expresiones regulares con ls
En Bash, el comando ls
se utiliza para listar archivos y directorios en un directorio específico. A continuación, se pueden observar algunos ejemplos de cómo puedes utilizar expresiones regulares con el comando ls
:
- Listar todos los archivos que terminan en
.txt
ls *.txt
- Listar archivos que comienzan con "archivo" y tienen una extensión de tres letras:
ls archivo???.*
- Listar todos los archivos que tienen al menos un número en su nombre:
ls *[0-9]*
- Listar archivos que comienzan con una vocal:
ls [aeiou]*
- Listar archivos que tienen exactamente tres caracteres en su nombre:
ls ???
- Listar archivos que comienzan con una letra mayúscula:
ls [A-Z]*
- Listar archivos que tienen una
a
ob
en el tercer lugar del nombre:
ls ??[ab]*