меняйте имена файлов последовательно

Не навсегда, но есть сон. Вы можете комбинировать свой цикл while со спящим режимом - кажется, что он даже не щекочет процессоры в моем мониторе gkrellm.
dr01 типы быстрее, чем я :) ... так что больше информации - ваш процессор скачет потому, что он должен постоянно обрабатывать логическую проверку без паузы между....

while true
do
  sleep 100
done

Или в виде однострочника

, хотя это правда; спят 100; done

0
25.05.2017, 20:50
3 ответа

С Perl переименовать:

prename 's/(\d+)/sprintf "%05d", $1/e' enum_*
5
28.01.2020, 02:13

Другой вариант bash:

#!/bin/bash
for fname in enum_*
do
    IFS=_ read n d <<< $fname   # splitting file name by separator `_`
    mv "$fname" "$(printf '%s_%05d' $n $d)"
done
1
28.01.2020, 02:13

Используйте printfдля правильного форматирования числовой части имени в цикле:

for name in enum_*; do
    mv -i -- "$name" "$( printf 'enum_%05d' "${name#*_}" )"
done

${name#*_}расширится до числовой части исходного имени, т.е. 73вместоenum_73(удалит все до первой _включительно в имени ). Строка форматирования enum_%05dотформатирует это целое число так, чтобы оно стало заполненным нулем -пятизначным -числом с префиксом enum_, то есть enum_00073.

5
28.01.2020, 02:13

Теги

Похожие вопросы