Sua expressão regular deve ser assim:
rename -n 's/^(.*)(\d{1}\.\d{1})(.*)$/$2 $1$3/' *.mp3
Como eu renomeio um arquivo no linux e pego a versão # do final e a movo para o começo. Por exemplo, eu tenho um nome de arquivo:
Random text - text 1.1 (SD).mp3
para
1.1 Random text - text.mp3
Agora eu posso pegar o número da versão, mas não posso movê-lo para o começo, eu tenho algo como:
rename -n 's/(\d{1}\.\d{1}) \(SD\).mp3/$1.mp3/' *.mp3
que me dá
Random text - text 1.1.mp3
Eu tentei adicionar um segundo grupo de expressão para corresponder ao início do arquivo para que eu possa trocar o começo e o fim, mas nada acontece
Sua expressão regular deve ser assim:
rename -n 's/^(.*)(\d{1}\.\d{1})(.*)$/$2 $1$3/' *.mp3
Os seguintes itens devem funcionar:
's/^(.+?) (\d+\.\d+) \(SD\)/$2 $1/'
Ou se você quiser manter a parte (SD)
:
's/^(.+?) (\d+\.\d+) /$2 $1 /'