Los grupos de captura se ignoran al cambiar el nombre de los archivos

10

Tengo varios archivos en este formato:

##. ## - Nombre de archivo.mp4

Quiero cambiarles el nombre a:

s ## e ##. mp4

Esto es lo que se me ocurrió:

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

Funciona cuando lo probé en http://regexr.com/ pero cuando ejecuto el comando en mi instalación de Ubuntu 12.04, todos mis archivos cambian de nombre ase.mp4

Por lo tanto, parece que los grupos se ignoran o no se insertan o algo así. ¿Me estoy perdiendo algo cegadoramente obvio o está sucediendo algo más?

Terminé usando pyRenamer y funcionó maravillosamente, pero todavía me gustaría saber por qué renameno funciona correctamente.

Saludos y gracias por cualquier ayuda que me puedan dar.

0x0049
fuente

Respuestas:

14

Creo que quizás su uso de comillas dobles está permitiendo que el shell se expanda $1y$2

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

mientras que con comillas simples alrededor de la expresión de cambio de nombre

$ rename -nv 's/^(\d{2})\.(\d{2}).*/s$1e$2.mp4/' *.mp4
12.34 File name.mp4 renamed as s12e34.mp4
conductor de acero
fuente