Используя сценарий rename
(* в некоторых случаях prename
), который иногда устанавливается вместе с Perl, вы можете использовать выражения Perl для переименования.Сценарий пропускает переименование в случае конфликта имен.
Команда ниже переименовывает только те файлы, которые имеют четыре или менее цифр, за которыми следует расширение «.txt».Он не переименовывает файлы, которые строго не соответствуют этому шаблону.Он не усекает имена, состоящие из более чем четырех цифр.
rename 'unless (/0+[0-9]{4}.txt/) {s/^([0-9]{1,3}\.txt)$/000$1/g;s/0*([0-9]{4}\..*)/$1/}' *
Несколько примеров:
Original Becomes
1.txt 0001.txt
02.txt 0002.txt
123.txt 0123.txt
00000.txt 00000.txt
1.23.txt 1.23.txt
Другие ответы, приведенные до сих пор, будут пытаться переименовать файлы, которые не соответствуютк шаблону, выдают ошибки для имен файлов, которые содержат нецифровые символы, выполняют переименования, которые вызывают конфликты имен, пытаются и не удается переименовать файлы с пробелами в их именах и, возможно, другие проблемы.