Renombrar archivos en batch chetamente
Ayer me encontré con un problema interesante. Resulta que estoy haciendo un laburo que consta de quichimil imágenes nombras de formas exóticas, la forma del nombre era algo como [numeros]{unmontondecosasquecambiaban}.jpeg/gif, yo necesitaba trabajar con algo mas facil de reconocer automágicamente, ademas los numeros eran consecutivos y no se repetían… no tarde mucho en decidirme en [numeros].jpeg/gif
Bien, la cosa era como hacer ese laburo, se me ocurrió empipar cosas, y hacer cosas como
find ./ -name [0-9]*.* | Algo que pase ese nombre a algo útil
Pero es muy difícil sacar las partes del nombre que te hace falta y chantarselo despues de un mv. Cuando me di por vencido, me fui a un canal innombrable de IRC a preguntar.. Me tiraron el dato de un script que viene con un paquete en Debian cuando instalas xfce. El script en Debian se llama prename pero es una variación de un script mas viejo que se llama rename. Está escrito en perl y es *muy* cheto porque funciona con expresiones regulares. Esto me permitió hacer cosas como:
perl renamer.pl 's/(\d+).*\.([\w]+)/$1.$2/' *.*
Si no entendes expresiones regulares.. andá a leer sobre expresiones regulares.. esto busca algo de la forma que nombré mas arriba y lo reemplaza en el nombre del archivo, borrando el anterior y dejando el nuevo con el nombre bonito.
Esto es genial por si no se dieron cuenta, porque permite renombrar todo lo que quieran usando estas expresiones regulares que son un bodrio pero amamos.
Por si les interesa el script, lo subí a GitHub y a BitBucket. Y lo ejecutas con la forma que puse mas arriba. Esto va a andar en cualquier computadora que tenga perl instalado (Linux y Mac lo tienen, Windows no tengo la mas remota idea)