Есть много способов. Вы можете использовать расширение Bash Brace для создания имен файлов с добавлением нуля, но вскоре оно станет сложным. Проще переименовать пакет после того, как вы скачали файлы, используя, например, скрипт prename
, который доступен по крайней мере в дистрибутивах на основе Debian после установки Perl.
Эта команда prename
выполнит заполнение нулями до трех цифр (измените {3} на другое число, чтобы изменить заполнение нулями. Убедитесь, что после второй косой черты в первом выражении есть нули> {n-1}):
$ ls
file_name-1-1.kmz file_name-12-112.kmz file_name-12-50.kmz file_name-140-88.kmz
$ prename -v 's/([0-9]+)/00$1/g; s/0+([0-9]{3})/$1/g' *
file_name-1-1.kmz renamed as file_name-001-001.kmz
file_name-12-112.kmz renamed as file_name-012-112.kmz
file_name-12-50.kmz renamed as file_name-012-050.kmz
file_name-140-88.kmz renamed as file_name-140-088.kmz
Запустите как prename -n
в первый раз, чтобы иметь возможность визуально проверять переименования без каких-либо изменений. Проверьте имя man prename
.
Выражение переименования работает, сначала заполняя все числа n-1 нулями, затем удаляя столько нулей, сколько необходимо, чтобы во всех числах оставалось n цифр. Это не будет усекать информацию, что приятно.
Числа с плавающей запятой не обрабатываются выше (например, file_name-12.7-112.97.kmz
), но могут быть легко сделаны с
s/([^\.0-9])([0-9]+)/${1}00$2/g; s/0+([0-9]{3})/$1/g
но эта более общая версия также более непонятна :-) (и может иметь свою долю ошибок; если поплавки не нужны, используйте более раннюю версию).
(prename
на самом деле связано как rename
в большинстве систем.)