Expresar mejor que lineas utilizar en los comandos para leer texto (grep y sed) es el principal uso de los expresiones regulares. Al dominarlas, podremos extender nuestro manejo de patrones o frases a buscar.
Si por ejemplo se buscan palabras que contengan la letra D en un archivo de texto.
[tusysadmin@localhost dict]$ grep d spanish | head -n 5
abad
abada
abadejo
abadenga
abadengo
Diferente sería mostrar las palabras que inician con esa letra, para esto usamos el acento circunflejo (^).
[tusysadmin@localhost dict]$ grep ^d spanish | tail -n 5
duunviral
duunvirato
duunviro
dux
duz
Si por el contrario, buscamos las palabras que terminen con la letra D usamos el símbolo de dólar ($).
[tusysadmin@localhost dict]$ grep d$ spanish | head -n 5
abad
absurdidad
accesibilidad
accidentalidad
aceptabilidad
Es posible usar los corchetes [ ] para indicar los caracteres que pueden aparecer dentro de una determinada posición.
[tusysadmin@localhost dict]$ grep ^d[aei]s[ae] spanish | tail -n 5
disertadora
disertante
disertar
diserto
disestesia
La salida del comando anterior muestra las palabras que inician con d seguido de una de las letras a, e o i; seguido de la letra s y por último una de las letras a o e.
Exclusiones y Rangos
Si lo que se busca es decir que caracteres no queremos imprimir usamos el ^ dentro de los corchetes.
[tusysadmin@localhost dict]$ grep ^m[^aei]s[ae] spanish | tail -n5
muselina
museo
museografía
musequí
muserola
Dentro de los corchetes es posible aceptar rangos para indicar todos los valores intermedios entre valor inicial y final. Esto sustituye el tener que escribir varias letras o números.
[tusysadmin@localhost dict]$ grep ^c[l-t]s[m-z].$ spanish
cospe
costa
coste
costo
Podemos negar el contenido de los corchetes usando en circunflejo.
[tusysadmin@localhost dict]$ grep ^c[^l-t]s[m-z].$ spanish
casón
caspa
casta
casto
cesta
cesto
cisma
cisne
Expresiones Extendidas
Se trata del uso de grep con la opción -E, en Unix y en algunas distribuciones puede usarse el comando egrep pero es poco usada.
Buscar palabras que tengan letras de un determinado rango y número.
tusysadmin@localhost dict]$ grep -E '^[g-p]{8}$' spanish
hipólogo
homólogo
homónimo
mogollón
monólogo
pimpollo
piojillo
piopollo
polígono
Las palabras mostradas tienen 8 letras y además están entre g y p. He fijado el número de letras pero pueden ser rangos; por ejemplo, entre 4 y 8.
[tusysadmin@localhost dict]$ grep -E '^[g-p]{4,8}$' spanish | head -n 5
gilí
gnomo
gnomon
gong
gongo
Hasta 8 letras.
[tusysadmin@localhost dict]$ grep -E '^[g-p]{,8}$' spanish | tail -n 5
pomo
pomol
pompo
pompón
pongo
Al menos 5 letras.
[tusysadmin@localhost dict]$ grep -E '^[g-p]{5,}$' spanish | head -n 5
gnomo
gnomon
gongo
himno
hinojo
Es posible el uso de expresiones extendidas para buscar todas las palabras con cierto número de letras; por ejemplo, 7.

Mostrar dos expresiones regulares.
[tusysadmin@localhost dict]$ grep -E '^a.*t$|^e.*z$' spanish
accésit
acimut
alacet
algunt
eficaz
electriz
escasez
estupidez
Es posible la agrupación de expresiones regulares usando paréntesis o para afectar un determinado carácter en especial, ejemplo.
[tusysadmin@localhost dict]$ grep -E '(c[aeiou]){2}' spanish | head
abdicación
acacia
acacianos
acecido
acecinador
De igual forma que en ejemplos anteriores, el numero puede ser fijo o manejar mínimos y máximos. Hasta aquí el post del día de hoy, cualquier duda la pueden dejar en los comentarios.