Preciso renomear um grupo de arquivos numerados, mas modificar o número + 5. Como?

Preciso renomear um grupo de arquivos numerados, mas modificar o número + 5. Como?

Possível duplicata:
Como posso renomear arquivos em massa na linha de comando ou usando uma ferramenta de terceiros?

Eu tenho um grupo de 47 arquivos .mp3 que estão sendo usados ​​para um projeto multimídia chamados 01.mp3 - 47.mp3 Cada arquivo deve realmente ter um nome que seja esse número + 5, então 02.mp3 deve ser realmente 07 .mp3 Os arquivos renomeados podem ter algum tipo de prefixo + o número, ou podem ser gravados em uma nova pasta para não interferir nos arquivos existentes.

Tenho Ubnutu e Windows à minha disposição. Alguém pode sugerir uma abordagem para isso?

Responder1

Você poderia fazer isso no awk com um 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);
    }
}

Supondo que você tenha uma pasta contendo os seguintes arquivos:

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

Se você executasse o comando, ls -l|./rename.awk|shvocê teria:

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

É claro que você pode modificar o script ou o comando shell para renomear apenas os arquivos que se ajustam a um determinado padrão ou incrementar em uma quantidade diferente.

informação relacionada