Como ejemplos podemos poner:
*
| se refiere a cualquier nombre incluso uno vacío. |
a*
| cualquier nombre que empiece por a. |
[ab]*
| cualquier nombre que empiece por a o b. |
[0-9]*
| cualquier nombre que empiece por cualquier dígito. |
?
| se refiere a cualquier nombre de una sola letra. |
[a-b]*
| cualquier nombre que empiece por cualquier letra minúscula. |
ho?a.c
| cualquier nombre que empiece por ho y acabe por a.c y contenga una letra en medio. |
Las expresiones regulares (véase man regexp
)
pueden ser muy complejas y muy potentes.
El shell del UNIX, cuando ejecutamos mandatos como ls *
captura ciertos caracteres especiales y los interpreta «antes» de evaluar
el mandato (en este caso ls). Aquí en primer lugar busca en el directorio
actual todos aquellos archivos cuyo nombre concuerda (match) con la
expresión regular *
; a continuación le proporciona la lista completa
(de una vez) al mandato ls
.
En definitiva, es el shell quien expande nuestra línea «antes» de ejecutar el mandato.