Переименование изображений в определенном порядке

Это - моя проблема: у Меня есть папка с 500 названными изображениями:

1.jpg
2.jpg
3.jpg

и так далее..

Я скопировал ту папку, и теперь я должен переименовать те те же изображения от 501 до 1 000, но в порядке как это:

1.jpg  becomes    501.jpg
2.jpg  becomes    502.jpg
3.jpg  becomes    503.jpg          
....

Когда я использую свою стандартную команду переименования:

i=501;for img in $(find . -iname '*.jpg'); do echo -n "Converting $img"; mv $img $i.jpg  && echo $i && ((i++)); done

Это заказывает изображения от 501 до 1 000, но они все рассеиваются:

23.jpg becomes 501.jpg,    
66.jpg becomes 502.jpg 
...   

(они находятся в правильном порядке, но он перепутывает их),

Я знаю, что это - вероятно, одна команда, которую я пропускаю...

8
задан 25 August 2017 в 11:44

5 ответов

Попробуйте Thunar, который является файловым менеджером по умолчанию для Xfce. Это очень легко и идет с удобным объемным инструментом переименования. Можно установить Thunar путем выполнения следующей команды в Терминале:

sudo apt-get install thunar

Вы, вероятно, сможете установить из программного обеспечения Ubuntu также.

Как использовать утилиту

  1. После того как Вы установили Thunar, запустите утилиту Bulk Rename.
  2. Нажмите + значок и добавьте файлы, которые Вы хотите переименовать в надлежащем порядке.
  3. Нажмите на выпадающее поле чуть ниже списка выбранных файлов и избранной Нумерации. Нажмите на поле рядом с ним и выберите Имя Только.
  4. В "Запускаются С": поле вводит 501, оставляет "текст": пустое поле. Необходимо видеть предварительный просмотр изменений в столбце New Name.
  5. Для применения изменений нажимают на кнопку Rename Files.

Помимо Нумерации этой утилиты поддерживает следующие действия:

  • Вставьте дату / время
  • Вставьте / Перезапись
  • Удалите символы
  • Поиск и Замена
  • Верхний регистр / Нижний регистр
7
ответ дан 23 November 2019 в 05:21

Эти find команда находит файлы в порядке 'каталога' (23.jpg, 66.jpg...). Вы могли поместить |sort после находки.

, Но Ваши методы сверхсложны.

for i in $( seq 1 500 ) ; do
    j=$(( $i + 500 ))
    mv $i.jpg $j.jpg
done 
13
ответ дан 23 November 2019 в 05:21

С rename команда.

rename -n 's/^(\d+)/sprintf("%d",$1+500)/e' *.jpg

Или в чистом bash и использование расширение параметра оболочки .

for FILE in *.jpg; do
    mv "$FILE" "$(( ${FILE%.jpg}+500 )).jpg" 
done 
11
ответ дан 23 November 2019 в 05:21

Если я понял то, что Вы спрашиваете правильно, я думаю, что можно сделать это с помощью значения по умолчанию, переименовывают инструмент:

rename 's/^(\d+)/sprintf("%d",$1+500)/e' *.jpg -vn

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

5
ответ дан 23 November 2019 в 05:21

Другой способ достигнуть этого только с окружает команду

count=1; поскольку я в ls; сделайте mv CN$ $i ((рассчитайте ++)). $ {i##*.};готово

0
ответ дан 23 November 2019 в 05:21

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

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