2.5.- Sustituir nombre de archivos

Expresiones básicas

El carácter *

Sirve de comodín y representa un conjunto de caracteres cualquiera:

caracter1

Usamos m* para ajustar la búsqueda a los archivos que empiecen por la letra m:

caracter2

Muestra los nombres de archivos que terminen con la extensión *.png:

caracter3

El carácter ?

Es un comodín que sólo representa a un carácter cualquiera:

caracter4

Muestra todos los nombres de archivos compuesto de tres caracteres:

caracter5

Los caracteres [ ]

Los corchetes nos permiten especificar la lista de caracteres que esperan en una posicion concreta en el nombre de archivo. También es posible usar las nociones de intervalo y negación.

Vemos como listamos con ls los archivos que empieza por a o que la extensión sea una letra (de la a a la z):

caracter6

Archivos cuyo nombre tiene una mayúscula en el segundo carácter, una cifra o la letra i.

caracter7

También podemos expresar una negación de los caracteres especificados en el interior de un par de corchetes. Se realiza mediante la adición del carácter ! en la primera posición de su interior:

Muestra en pantalla los nombres de archivo que no comiencen por minúscula:

caracter8

Podemos especificar múltiples expresiones en la línea de comandos. éstas deberán estar separadas por un espacio. Por ejemplo, para eliminar todos los archivos cuyo nombre termine por .c o .s:

rm_shell

Expresiones complejas

indicePara usar estas expresiones en bash, es necesario previamente activar la opción extglob con el comando shopt -s extglob.

Estas expresiones sirven para generar nombres de archivos y además podemos usarlo en otros contextos que veremos más adelante. Vemos a continuación una muestra del contenido del directorio que usaremos en los siguientes ejemplos:

ejemplo_1

Ejemplo de ? (expresión)
La expresión estará presente 0 o 1 veces:

ejemplo_2

Archivos cuyo nombre comience por “fic” seguido de 0 ó 1 y con la ocurrencia “866”, seguido de “.log”.

Ejemplo de * (expresión)
La expresión estará presente 0 o n veces:

ejemplo_3

Archivos cuyo nombre comience por “fic”, seguido de 0 a n ocurrencias de “866”, seguido de “.log”.

Ejemplo de + (expresión)
La expresión estará presente entre 1 y n veces:

ejemplo_4

Archivos cuyo nombre comience por “fic”, seguido de al menos 1 ocurrencia de “866”, seguido de “.log”.

Ejemplo de @ (expresión)
La expresión estará presente solo 1 vez:

ejemplo_5

Archivos cuyo nombre comience por “fic”, seguido de exactamente una ocurrencia de “866”, seguido de “.log”.

Ejemplo de ! (expresión)
La expresión no estará presente:

ejemplo_6

Archivos cuyo nombre comience por “fic”, seguido de una expresión que no sea la cadena “866”, seguido de “.log”.

ejemplo_7

Archivos cuyo nombre no empiece por “fic”.

Alternativas
Una barra vertical (|) en el interior de una expresión compleja significa “o bien”.
?(expresión|expresión|...)
*(expresión|expresión|...)
+(expresión|expresión|...)
@(expresión|expresión|...)
!(expresión|expresión|...)

ejemplo_7

Archivos cuyo nombre comience por “fic”, seguido de “866” o de “867”, seguido de “.log”.

ejemplo10

Archivos cuyo nombre comience por “fic”, seguido de 1 a n ocurrencias de “866” 0 “868”, seguido de “.log”.

ejemplo_11

Archivos cuyo nombre comience por “fic”, seguido de 1 ocurrencia de 1 a n veces “866” o de 1 a n veces “868”, seguido de “.log”.

Interpretación del shell

Todos estos caracteres especiales se sustituyen por el shell y no por el comando.

figura_3

Tratamiento de los caracteres de generación de nombres de archivo.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s