Suelo olvidarme de como generar un cambio masivo de nombres y como crear muchas carpetas y mover los archivos a dichas carpetas.
Cambio de nombre masivo
En el link se puede ver la página en que me basé para esta parte. El Comando a utilizar se llama “rename
” y su utilización es muy parecida a sed
.
~$
man rename
rename – renames multiple files
SYNOPSIS
rename [ -h|-m|-V ] [ -v ] [ -0 ] [ -n ] [ -f ] [ -d ] [ -e|-E perlexpr]*|perlexpr [ files ]
En la página de bonaval explican algunos de los comandos, los más importantes son:
-v (Verbose: modo detallado, nos saca en pantalla lo que se va haciendo en el proceso)
-n (No Action: no realiza la acción, solo nos muestra lo que haría)
**es importante poner estos parámetros juntos la primera vez que ejecutamos, para comprobar que el resultado que vamos a obtener es el que queremos.
Como se utiliza
Si queremos cambiar el espacio del nombre por guión bajo a todos los archivos con extensión “.pdf”, debemos escribir:
rename 's/ /_/g' *.pdf
Para cambiar las mayúsculas por minúsculas debemos usar:
rename 'y/A-Z/a-z/' *
Trabajando con carpetas de forma masiva
Para este caso utilizaremos el comando for
, La intención es crear una carpeta por cada archivo que empieze con “Colección” y posteriormente, mover el archivo a la carpeta que tiene su mismo nombre
~$ for file in Colección*
>do
>mkdir ${file/.pdf/}
>mv $file ${file/.pdf/}
>done
El código ${file/.pdf/}
significa que al archivo que tiene extensión “.pdf”, lo dejaremos sin nada, esto debido a que las carpetas no deben tener extensión.
Si encuentro nuevas formas de hacer lo mismo, se irán agregando a este post.