cambiar el nombre de la expresión regular no puede cambiar el nombre de los archivos

cambiar el nombre de la expresión regular no puede cambiar el nombre de los archivos

Tengo un montón de imágenes como 1.jpg 2.PNG 3.gif 4.jpegen un directorio. Quiero cambiarles el nombre a todos a 1-s.jpg 2-s.PNG 3-s.gif 4-s.jpeg.

Intenté ejecutar estos comandos pero no tuvo ningún efecto en los archivos del directorio:

rename 's/^(\d+)\.(.*)/$1-s.$2/' .
rename 's/^(\d+)\.(.+)/$1-s.$2/' .
rename 's/.*\.(.+)/$1-s.$2/' .

¿Qué hice mal?

Respuesta1

Utilice el comodín *para los nombres de archivos:

rename 's/^(\d+)\.(.*)/$1-s.$2/' *

y puedes simplificarlo un poco:

rename 's/^(\d+)(?=\.)/$1-s/' *

donde (?=\.)hay una anticipación positiva que asegura que tengamos un punto después del dígito, sin capturarlo.

información relacionada