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|sh
você 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.