rename regex не может переименовать файлы

rename regex не может переименовать файлы

У меня есть куча изображений 1.jpg 2.PNG 3.gif 4.jpegв каталоге. Я хочу переименовать их все в 1-s.jpg 2-s.PNG 3-s.gif 4-s.jpeg.

Я попробовал выполнить эти команды, но они не оказали никакого эффекта на файлы в каталоге:

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

Что я сделал не так?

решение1

Используйте подстановочные знаки *для имен файлов:

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

и можно немного упростить:

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

где (?=\.)— положительный просмотр вперед, который гарантирует наличие точки после цифры, не захватывая ее.

Связанный контент