2 votes

Renommez un fichier pour déplacer le numéro de version de la fin au début.

Comment renommer un fichier sous linux en prenant le numéro de version à la fin et en le déplaçant au début. Par exemple, j'ai un nom de fichier :

Random text - text 1.1 (SD).mp3

à

1.1 Random text - text.mp3

Actuellement, je peux saisir le numéro de version mais je ne peux pas le déplacer au début :

rename -n 's/(\d{1}\.\d{1}) \(SD\).mp3/$1.mp3/' *.mp3

ce qui me donne

Random text - text 1.1.mp3

J'ai essayé d'ajouter un deuxième groupe d'expression pour correspondre au début du fichier afin de pouvoir échanger le début et la fin, mais rien ne se passe.

2voto

Ansgar Wiechers Points 5210

Votre expression régulière doit ressembler à ceci :

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

1voto

James Mertz Points 390

Ce qui suit devrait fonctionner :

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

Ou si vous voulez garder le (SD) partie :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X