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.

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.