Існує багато способів. Ви можете використовувати розширення підтяжки Bash розумним способом для створення нульових імен файлів, але це скоро стане складним. Простішим є пакетне перейменування після завантаження файлів, використовуючи, наприклад, 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
але ця більш загальна версія також є більш нерозбірливою :-) (і може мати свою частку помилок; якщо floats не потрібні, використовуйте більш ранню версію).
( prename
насправді пов'язано, як rename
у більшості систем.)