Saltar a contenido

Comando grep y Expresiones Regulares#

Una expresión regular es un patrón que describe un conjunto de caracteres. Las expresiones regulares son construidas de manera análoga a la aritmética usando varios operadores para combinar expresiones más pequeñas

La forma más básica de una expresión regular es la que coincide con un solo caracter.

Metacaracteres#

Son caracteres con un significado específico, los metacaracteres se dividen en 2 categorías:

  • Multiplicadores
  • Rango o Anchura

Multiplicadores#

Los metacaracteres multiplicadores son los que nos permiten indicar la repetición (cantidad) de conicidencias de un patron dentro de una cadena de caracteres.

Operador Efecto
. Coincide con un solo caracter
? El elemento que lo precede es opcional y coincidirá como máximo una sola vez.
* El elemento que lo precede coincidirá cero o más veces.
+ El elemento que lo precede coincidirá una o más veces.
{N} El elemento que lo precede coincidirá exactamente N veces.
{N,} El elemento que lo precede coincidirá N o más veces.
{N,M} El elemento que lo precede coincidirá al menos N veces, pero no más de M veces.

Anchura#

Los metacaracteres de anchura nos permiten definir donde inicia y donde termina un patron.

Operador Efecto
^ Coincide con el inicio de un patron.
$ Coincide con el final de un patron.

Rangos de caracteres#

Una clase o rango de caracteres coincide solamente con un caracter de la clase, las clases de caracteres se definen haciendo uso de corchetes [ ], ejemplos:

Rango Significado
[a-z] Letras minúsculas de la a a la z
[0-9] Números dígitos de 0 a 9
[A-Z] Letras mayúsculas de la A a la Z
[A-Z0-9] Letras mayúsculas de la A a las Z y números digitos del 0 al 9
[abc] Letras a, b y c específicamente
[123] Números 1,2 y 3
[^ae] Niega las letras a y e

Ejemplos#

grep ^root /etc/passwd
grep [yf] /etc/group
grep '^c...h$' /usr/share/dict/words
grep '^c.*' /usr/share/dict/words
grep '^c.*' /usr/share/dict/words