¿Qué son las expresiones regulares de Linux?
Las expresiones regulares de Linux son caracteres especiales que ayudan a buscar datos y hacer coincidir patrones complejos. Las expresiones regulares se acortan como 'regexp' o 'regex'. Se utilizan en muchos programas de Linux como grep, bash, rename, sed, etc.
Tipos de expresiones regulares
Para facilitar la comprensión, aprendamos los diferentes tipos de Regex uno por uno.
- Expresiones regulares básicas
- Expresiones regulares de intervalo
- Expresiones regulares extendidas
- Resumen
Haga clic aquí si el video no es accesible
Expresiones regulares básicas
Algunos de los comandos más utilizados con expresiones regulares son tr, sed, vi y grep. A continuación se enumeran algunas de las expresiones regulares básicas.
Símbolo | Descripciones |
---|---|
. | reemplaza cualquier personaje |
coincide con el comienzo de la cadena | |
PS | coincide con el final de la cadena |
* | coincide cero o más veces con el carácter anterior |
\ | Representar caracteres especiales |
() | Agrupa expresiones regulares |
? | Coincide exactamente con un carácter |
Veamos un ejemplo.
Ejecute cat sample para ver el contenido de un archivo existente
Busque contenido que contenga la letra 'a'.
' ^ ' coincide con el comienzo de una cadena. Busquemos contenido que EMPIEZA con un
Solo se filtran las líneas que comienzan con carácter. Las líneas que no contienen el carácter 'a' al principio se ignoran.
Veamos otro ejemplo:
Seleccione solo aquellas líneas que terminan con t usando $
Expresiones regulares de intervalo
Estas expresiones nos dicen sobre el número de apariciones de un carácter en una cadena. Son
Expresión | Descripción |
---|---|
{norte} |
Coincide con el carácter anterior que aparece 'n' veces exactamente |
{Nuevo Méjico} | Coincide con el carácter anterior que aparece 'n' veces pero no más de m |
{n,} | Coincide con el carácter anterior solo cuando aparece 'n' veces o más |
Ejemplo:
Filtra todas las líneas que contienen el carácter 'p'
Queremos comprobar que el carácter 'p' aparece exactamente 2 veces en una cadena una tras otra. Para esto la sintaxis sería:
cat sample | grep -E p\{2}
Nota: debe agregar -E con estas expresiones regulares.
Expresiones regulares extendidas
Estas expresiones regulares contienen combinaciones de más de una expresión. Algunos de ellos son:
Expresión | Descripción |
---|---|
\ + |
Coincide con una o más ocurrencias del carácter anterior |
\? |
Coincide con cero o una aparición del carácter anterior |
Ejemplo:
Buscando todos los personajes 't'
Supongamos que queremos filtrar las líneas donde el carácter 'a' precede al carácter 't'
Podemos usar comandos como
cat sample|grep "a\+t"
Expansión de corsé
La sintaxis para la expansión de llaves es una secuencia o una lista de elementos separados por comas dentro de llaves "{}". Los elementos inicial y final de una secuencia están separados por dos puntos "...".
Algunos ejemplos:
En los ejemplos anteriores, el comando echo crea cadenas utilizando la expansión de llaves.
Resumen:
- Las expresiones regulares son un conjunto de caracteres que se utilizan para verificar patrones en cadenas.
- También se llaman 'regexp' y 'regex'
- Es importante aprender expresiones regulares para escribir guiones.
- Algunas expresiones regulares básicas son:
Símbolo | Descripciones |
---|---|
. | reemplaza cualquier personaje |
coincide con el comienzo de la cadena | |
PS | coincide con el final de la cadena |
- Algunas expresiones regulares extendidas son:
Expresión | Descripción |
---|---|
\ + | Coincide con una o más ocurrencias del carácter anterior |
\? | Coincide con cero o una aparición del carácter anterior |
- Algunas expresiones regulares de intervalo son:
Expresión | Descripción |
---|---|
{norte} | Coincide con el carácter anterior que aparece 'n' veces exactamente |
{Nuevo Méjico} | Coincide con el carácter anterior que aparece 'n' veces pero no más de m |
{n,} | Coincide con el carácter anterior solo cuando aparece 'n' veces o más |
- La expansión de la abrazadera se utiliza para generar cadenas. Ayuda a crear múltiples cadenas de una.