Renomeia um arquivo para mover o número da versão do final para o início

2

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

    
por James 13.09.2012 / 01:05

2 respostas

2

Sua expressão regular deve ser assim:

rename -n 's/^(.*)(\d{1}\.\d{1})(.*)$/$2 $1$3/' *.mp3
    
por 13.09.2012 / 01:19
1

Os seguintes itens devem funcionar:

's/^(.+?) (\d+\.\d+) \(SD\)/$2 $1/'

Ou se você quiser manter a parte (SD) :

's/^(.+?) (\d+\.\d+) /$2 $1 /'
    
por 13.09.2012 / 01:20

Tags