Для следующих файлов:
test0.txt
test1.txt
test2.txt
...
test1234.txt
Это сработало для меня:
rename 's/test([0-9]{1}).txt/test0$1.txt/' *
rename 's/test([0-9]{2}).txt/test0$1.txt/' *
rename 's/test([0-9]{3}).txt/test0$1.txt/' *
Результат:
test0000.txt
test0001.txt
test0002.txt
...
test1234.txt
Конечно, вы можете обернуть это внутри цикла.
Важно:Если ваши файлы начинаются или заканчиваются числами, которые вы хотите заполнить, вы должны использовать ^
и $
для соответствия начала и конца, например. Например:
rename 's/^([0-9]{1}).txt/0$1.txt/' *
или
rename 's/test([0-9]{1})$/test0$1/' *
Вы можете использовать rename
параметр -n
для предварительного просмотра изменений без фактического переименования, например:
rename -n 's/test([0-9]{1}).txt/test0$1.txt/' *