2

Я использовал wget для загрузки сайта в папку. Когда файлы имеют одинаковые имена, wget сохраняет новое как name.extension.#

Теперь у меня есть сотни файлов, таких как 1.jpg, 1.jpg.1, 1.jpg.2 и т.д.

Как я могу изменить каждый файл с расширением .jpg * на обычный .jpg?

РЕДАКТИРОВАТЬ: я использовал бесплатное NameChanger, который позволяет мне организовать данные EXIF перед изменением расширения.

4 ответа4

3

Используйте Name Mangler, чтобы сделать это. Условно-бесплатная, но: Пробная версия: Name Mangler будет работать без ограничений 25 запусков.

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

Скриншот подходящей конфигурации


Бесплатный NameChanger также может сделать это. (спасибо, slhck !)

Скриншот подходящей конфигурации

1

Я предполагаю, что вы хотите, чтобы 1.jpg.1 был переименован в 1-1.jpg , иначе вы потеряете их. Быстрое и грязное приходит на ум: просто используйте sed для создания сценария оболочки на лету и sh так:

$ ls -1 *jpg* | sed -e 's@\(.*\)\(\.jpg\.\)\(.*\)@mv \1\2\3 \1-\3.jpg@' | grep ^mv | sh 

Настоятельно рекомендуем вам проверить вывод непосредственно перед sh чтобы убедиться, что он действительно будет делать правильные вещи.

0

IFS=$'\n'; for f in `find . -name '*.jpg.*'`; do echo mv "$f" "`sed -E 's/(.*)\.jpg\.(.*)/\1-\2.jpg/' <<< "$f"`"; done

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

0

Это легко запоминающийся способ переименования нескольких файлов в Терминале:

rename 's/\.jpg.1/\.jpg/' *.jpg.1

Просто ставьте любое расширение после каждого /\. и обязательно укажите существующие файлы во втором аргументе (в данном случае *.jpg.1 )

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .