Necesito cambiar el nombre de un grupo de archivos numerados, pero modificar el número + 5. ¿Cómo?

Necesito cambiar el nombre de un grupo de archivos numerados, pero modificar el número + 5. ¿Cómo?

Posible duplicado:
¿Cómo puedo cambiar el nombre de archivos en masa desde la línea de comandos o usando una herramienta de terceros?

Tengo un grupo de 47 archivos .mp3 que se están utilizando para un proyecto multimedia que se denominan 01.mp3 - 47.mp3. Cada archivo debería tener un nombre que sea ese número + 5, de modo que 02.mp3 debería ser 07. .mp3 Los archivos renombrados pueden tener algún tipo de prefijo + el número, o pueden escribirse en una nueva carpeta para no interferir con los archivos existentes.

Tengo Ubnutu y Windows a mi disposición. ¿Alguien puede sugerir una solución a esto?

Respuesta1

Podrías hacer esto en awk con un script como este:

#!/usr/bin/awk -f
BEGIN {
    regex = "[0-9]+"
    print "mkdir new"
}
{
    if (match($8,regex)) {
        before = substr($8,1,RSTART-1);
        pattern = substr($8,RSTART,RLENGTH);
        newnumber = pattern + 5
        after = substr($8,RSTART+RLENGTH);
        printf("mv %s new/%s%.2d%s\n", $8, before, newnumber, after);
    }
}

Suponiendo que tenía una carpeta que contenía los siguientes archivos:

foo01
foo02
foo03
foo04
foo05
bar10.txt
bar11.txt
bar12.txt
bar13.txt
rename.awk

Si ejecutaras el comando ls -l|./rename.awk|shentonces tendrías:

new/foo06
new/foo07
new/foo08
new/foo09
new/foo10
new/bar15.txt
new/bar16.txt
new/bar17.txt
new/bar18.txt
rename.awk

Por supuesto, puede modificar el script o el comando de shell para cambiar solo el nombre de los archivos que se ajusten a un patrón determinado o incrementarlos en una cantidad diferente.

información relacionada