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

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

1.jpg 2.jpg 3.jpg

и т. д.

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

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 до 1000, но они все они разбросаны:

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

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

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

7
задан 25 August 2017 в 21:44

13 ответов

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

sudo apt-get install thunar

Вы, вероятно, сможете установить и из Ubuntu Software.

Как использовать утилиту [!d3 ] После того, как вы установили Thunar, запустите утилиту Bulk Rename. Нажмите на значок + и добавьте файлы, которые вы хотите переименовать, в правильном порядке. Нажмите на раскрывающийся список чуть ниже списка выбранных файлов и выберите Нумерация. Нажмите на поле рядом с ним и выберите «Только имя». В поле «Начать с:» введите 501, оставьте поле «Текст:» пустым. Вы должны увидеть предварительный просмотр изменений в столбце «Новое имя». Чтобы применить изменения, нажмите кнопку «Переименовать файлы».

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

Вставить дату / время Вставить / перезаписать Удалить символы Поиск и amp; Заменить верхний / нижний регистр

7
ответ дан 22 May 2018 в 19:03
  • 1
    Спасибо человеку, что вы MVP! Мне нужно только добавить, что мне также нужно было изменить текстовый формат: Text - Number. (на всякий случай, если кто-либо еще это использует) – Painkiller 25 August 2017 в 20:30
  • 2
    Переключить fm на ... выполнить простую задачу, кажется, излишним для меня. Написание простого расширения скрипта nautilus занимает меньше времени, чем переключение fm. – Jacob Vlijm 25 August 2017 в 20:40
  • 3
    @JacobVlijm Я использую Thunar только для основного инструмента переименования вместе с Nautilus. Thunar довольно светлый и, похоже, не конфликтует с Nautilus или другими файловыми менеджерами. – pomsky 25 August 2017 в 20:45
  • 4
    Если вам не нужен второй файловый менеджер, pyrenamer работает отлично и это то, что я использую для переименования в bunk, когда я хочу, чтобы графический интерфейс сравнивался до / после вывода. – Tom Brossman 25 August 2017 в 20:48

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

sudo apt-get install thunar

Вы, вероятно, сможете установить и из Ubuntu Software.

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

После того, как вы установили Thunar, запустите утилиту Bulk Rename. Нажмите на значок + и добавьте файлы, которые вы хотите переименовать, в правильном порядке. Нажмите на раскрывающийся список чуть ниже списка выбранных файлов и выберите Нумерация. Нажмите на поле рядом с ним и выберите «Только имя». В поле «Начать с:» введите 501, оставьте поле «Текст:» пустым. Вы должны увидеть предварительный просмотр изменений в столбце «Новое имя». Чтобы применить изменения, нажмите кнопку «Переименовать файлы».

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

Вставить дату / время Вставить / перезаписать Удалить символы Поиск и amp; Заменить верхний / нижний регистр
7
ответ дан 18 July 2018 в 07:54

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

sudo apt-get install thunar

Вы, вероятно, сможете установить и из Ubuntu Software.

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

После того, как вы установили Thunar, запустите утилиту Bulk Rename. Нажмите на значок + и добавьте файлы, которые вы хотите переименовать, в правильном порядке. Нажмите на раскрывающийся список чуть ниже списка выбранных файлов и выберите Нумерация. Нажмите на поле рядом с ним и выберите «Только имя». В поле «Начать с:» введите 501, оставьте поле «Текст:» пустым. Вы должны увидеть предварительный просмотр изменений в столбце «Новое имя». Чтобы применить изменения, нажмите кнопку «Переименовать файлы».

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

Вставить дату / время Вставить / перезаписать Удалить символы Поиск и amp; Заменить верхний / нижний регистр
7
ответ дан 24 July 2018 в 18:55

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

Но ваши методы перекомплексированы.

for i in $( seq 1 500 ) ; do
    j=$(( $i + 500 ))
    mv $i.jpg $j.jpg
done 
12
ответ дан 22 May 2018 в 19:03

С командой rename.

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

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

for FILE in *.jpg; do
    mv "$FILE" "$(( ${FILE%.jpg}+500 )).jpg" 
done 
10
ответ дан 22 May 2018 в 19:03

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

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

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

4
ответ дан 22 May 2018 в 19:03
  • 1
    Как установить этот инструмент в Ubuntu? по умолчанию rename связан с prename(1) из пакета perl, который не поддерживает все эти параметры командной строки. – David Foerster 26 August 2017 в 16:45
  • 2
    @DavidFoerster Возможно, вы правы. Я не смог найти текущую ссылку на установку (я не использовал ее с 2014 года). С помощью инструмента переименования по умолчанию, я думаю, выражение регулярного выражения должно быть 's/^(\d+)/sprintf("%d",$1+500)/e'. Я соответствующим образом обновлю ответ. Благодарю. – sempaiscuba 26 August 2017 в 17:11
  • 3
    Ваш ответ теперь является дубликатом AFSHIN . – David Foerster 26 August 2017 в 17:22
  • 4
    @DavidFoerster Извините, какой ответ? Единственные другие ответы, которые я вижу, - это pomsky & amp; waltinator. Не используйте переименование (либо версию). – sempaiscuba 26 August 2017 в 17:26
  • 5
    Прямая ссылка на ответ, который я имею в виду, включена в мой предыдущий комментарий. – David Foerster 26 August 2017 в 17:28

Другой способ достижения этой цели с помощью команды shell

count = 1, для i в ls; do mv $ i CN $ ((count ++)). $ {i ## *.}; сделано

0
ответ дан 22 May 2018 в 19:03

Другой способ достижения этой цели с помощью команды shell

count = 1, для i в ls; do mv $ i CN $ ((count ++)). $ {i ## *.}; сделано

0
ответ дан 18 July 2018 в 07:54

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

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

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

5
ответ дан 18 July 2018 в 07:54

С командой 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
ответ дан 18 July 2018 в 07:54

Другой способ достижения этой цели с помощью команды shell

count = 1, для i в ls; do mv $ i CN $ ((count ++)). $ {i ## *.}; сделано

0
ответ дан 24 July 2018 в 18:55

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

Но ваши методы перекомплексированы.

for i in $( seq 1 500 ) ; do j=$(( $i + 500 )) mv $i.jpg $j.jpg done
13
ответ дан 24 July 2018 в 18:55

С командой 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
ответ дан 24 July 2018 в 18:55

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

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