Простой способ добавить ноль к имени файла, если это нужно

С большой помощью отсюда я скоро преобразовал все свои файлы jpg в gif (еще раз спасибо ALOT)

, но когда я осматривал свои файлы, я заметил, что в какую-то папку я добавил ноль к именам файлов.

Стандарт имени файла, который я пытаюсь использовать, это 001.gif, 002.gif .... но некоторые файлы имеют 01.gif, 02.gif и т. Д., И это не очень хорошо для меня.

Итак, с помощью кода я получил от convert, что нашел что-то, что называет глобус звездой. Я был готов посмотреть, смогу ли я это исправить самостоятельно:)

, но ничего не произошло, когда я запустил код. Прямо сейчас я просто пытаюсь посмотреть, смогу ли я конвертировать файл с JPG

for f in /lib/**/*jpg; do
        if [ "${#f}" -eq 2 ]; then
    mv "$f" "0$f" 
    fi 
done
2
задан 27 July 2019 в 23:27

1 ответ

Существует много различных способов сделать это, но взятие Вашей попытки как начальная точка

for f in /lib/**/[0-9][0-9].jpg; do
  b="${f##*/}"; d="${f%/*}"; 
  echo mv "$f" "${d}/0${b}"; 
done

Таким образом, вместо того, чтобы соответствовать всем jpg файлы и затем пытающийся протестировать, сколько цифр каждый имеет, просто соответствуйте тем точно двум ведущим цифрам. Удалите echo после того как Вы удовлетворены, что это работает правильно.


Кроме того, Вы могли что-то вроде этого с основанным на Perl prename команда:

prename -n 's/(\d+)\./sprintf("%03d.",$1)/e' /lib/**/*.jpg

Это берет любую непустую последовательность цифр прежде a . и переиздает их дополненный нулем к минимальной ширине 3 цифр.

5
ответ дан 2 December 2019 в 01:52

Другие вопросы по тегам:

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