Les groupes de capture sont ignorés lors du changement de nom des fichiers

10

J'ai un certain nombre de fichiers dans ce format:

##. ## - Nom du fichier.mp4

Je veux les renommer en:

s ## e ##. mp4

Voici ce que j'ai trouvé:

renommez -n "s / ^ (\ d {2}) \. (\ d {2}). * / s $ 1e $ 2.mp4 /"

Cela fonctionne lorsque je l'ai testé sur http://regexr.com/ mais lorsque j'exécute la commande sur mon installation Ubuntu 12.04, tous mes fichiers sont renommés ense.mp4

Il semble donc que les groupes soient ignorés ou non insérés ou quelque chose dans ce sens. Suis-je en train de manquer quelque chose d'une évidence aveuglante ou quelque chose d'autre se passe-t-il?

J'ai fini par utiliser pyRenamer et cela a fonctionné à merveille, mais je voudrais quand même savoir pourquoi renamene fonctionne pas correctement.

Bravo et merci pour toute aide que vous pouvez me donner.

0x0049
la source

Réponses:

14

Je pense que votre utilisation de guillemets doubles permet au shell de se développer $1et$2

$ rename -nv "s/^(\d{2})\.(\d{2}).*/s$1e$2.mp4/" *.mp4
12.34 File name.mp4 renamed as se.mp4

alors qu'avec des guillemets simples autour de l'expression renommer

$ rename -nv 's/^(\d{2})\.(\d{2}).*/s$1e$2.mp4/' *.mp4
12.34 File name.mp4 renamed as s12e34.mp4
tournevis
la source