14Jul

Con la extensión de Vim vim-renamer, podemos aplicar cambios de nombre a todos los archivos de un directorio a la vez

En muchas ocasiones nos encontramos en la situación de tener que renombrar de forma masiva y a veces con diferentes patrones todos los archivos de un directorio (una colección de imágenes, diferente estructura de archivos y carpetas, etc…)

Vim-renamer es una extensión de Vim que permite realizar esta acción de forma masiva con todos los archivos de un mismo directorio.

Instalación

Para instalar la extensión de Vim en nuestro ordenador basta con seguir las instrucciones de instalación del repositorio Github:

En acción

A continuación la lista de archivos a renombrar:

En el ejemplo vamos a renombrar un conjunto de imágenes de un directorio con la extensión vim-renamer del editor de código Vim.

Listado de archivos a renombrar

Vemos que tenemos archivos con extensión «JPG» en mayúscula, que queremos cambiar a minúscula.

También queremos seguir el patrón de guión bajo entre la el código alfanumérico y el número de imagen, y además queremos guardar las fotos con patrón DSC_* en una carpeta CAM1 y las que tengan el patrón DC* en la carpeta CAM2.

Al final queremos que los archivos DC{numero}.JPG queden con la forma final DC_{numero}.jpg dentro de la carpeta CAM2, y que los archivos con DSC_{numero}.JPG queden en la forma DSC_{numero}.jpg en la carpeta CAM1.

Ejecutando Renamer

Primero ejecutamos dentro del directorio el comando de Vim:

:Renamer

y pulsamos Enter. Esto nos hará entrar en el modo de renombrado de archivos.

Primero, cambiamos la extensión JPG por «jpg» en todos los archivos de la vista. Ejecutamos el siguiente comando de reemplazo por expresión regular para realizar la tarea:

:%s/JPG/jpg/g

Como podemos ver en la siguiente captura, en el buffer de Renamer ya tenemos los archivos con la extensión deseada.

En el siguiente paso añadimos el carácter «_» en las imágenes con prefijo DC, para lo que aplicamos el siguiente comando de reemplazo:

:%s/DC/DC_/g

Como vemos en la siguiente captura, después del reemplazo de la cadena DC por DC_ ya tenemos el prefijo añadido en todas las imágenes

Ahora añadimos la carpeta CAM1 a las imágenes con prefijo DSC y CAM2 a las imágenes con prefijo DC.

Nota
No es necesario crear las carpetas, vim-renamer creará las carpetas por nosotros en el proceso de renombrado en el último paso de ejecución.

Con los siguientes 2 comandos añadimos el prefijo de la carpeta a los archivos:

:%s/DSC/CAM1\/DSC/g

Y para CAM2

:%s/DC/CAM2\/DC/g

Ahora, los archivos ya están preparados para ser renombrados y movidos a su destino final en el directorio. La siguiente captura muestra el estado final del buffer antes de aplicar el comando Ren.

Ejecutamos en Vim el comando para persistir los cambios de los nombres de archivo y mover definitivamente los archivos:

:Ren

Y podemos ver como ha creado las carpetas y los archivos corresponden con el tratamiento que hemos hecho de sus nombre en el buffer anterior.

En el ejemplo hemos usado un paquete pequeño de archivos. Pero para paquetes grandes donde hay que arreglar los nombres de listas masivas de archivos, este script es de mucha utilidad y nos ahorrará mucho tiempo.

Vim-renamer: Script original del script vim-renamer

Leave a comment