lunes, 18 de julio de 2011

Renombrar archivos masivamente desde consola

En ocasiones nos encontramos con que tenemos muchos archivos que tienen una extensión que nos gustaría cambiar o que tienen alguna cadena que nos gustaría quitar. Por ejemplo tener muchos archivos que digan: nombreDelArchivo-NombreAutor, o cosas por el estilo. Esto es algo muy sencillo de arreglar con la orden rename.

Una de las formas de aplicarlo es:

rename 's/cadenaAreemplazar/cadenaNueva/' archivosAaplicar

Por ejemplo, supongamos que tenemos muchos archivos, para este caso que los archivos fueron generados por el siguiente script:


#!/bin/bash
   echo "Comenzando la ejecucion"
   for i in $(seq 2 10)
   do
   touch archivo$i\(Nombre\)
   done
   echo "Finalizado correctamente"


Cuando haya finalizado la ejecución tendremos varios archivos: archivo1(Nombre), archivo2(Nombre), etc

Si quisiéramos quitar la cadena "(Nombre)" de cada uno de ellos, sería ejecutar:

$ rename 's/\(Nombre\)//' *\(Nombre\)

La parte final del comando toma todos los archivos cuyo nombre contenga la cadena "(Nombre)" en la carpeta que estamos trabajando.

No hay comentarios:

Publicar un comentario