как я могу пакетно переименовывать файлы с помощью терминала?
у меня есть набор файлов, все из них nnn.MP4.mov
Как я могу переименовать их так, что это просто nnn.mov
?
10 ответов:
во-первых, сделайте сухой прогон (фактически не переименовывайте файлы) со следующим:
for file in *.mov do echo mv "$file" "${file/MP4./}" done
если все нормально, удалить
echo
из третьей строки, чтобы фактически переименовать файлы.
Я только что успешно использовал Automator (первый раз, когда я беспокоился), и он работает очень хорошо. Я сохранил автоматизацию как сервис. Потребовалось около 10 секунд, чтобы сделать что-то легко многоразовый:
- Открыть Автоматизаторов.
- В качестве типа документа выберите "сервис".
- изменить сервис получает выбранный " текст "на"файлы и папки".
- подумайте об изменении "любого приложения" на просто Finder.
- на боковой панели выберите " файлы & Папки "(в разделе Библиотека) и из перечисленных действий в Центральном столбце перетащите" переименовать элементы Finder "в правую сторону и поместите его в" перетащите действия или файлы здесь, чтобы построить рабочий процесс."
- измените только что добавленное действие с "Добавить дату или время" на "Сделать последовательным".
- Нажмите кнопку " Параметры "в нижней части действия и установите флажок"показывать это действие при запуске рабочего процесса".
- нажмите "CMD+S", чтобы сохранить службу как что-то вроде "заменить Текст.".
- готово!
теперь вы можете щелкнуть правой кнопкой мыши любой выбор в Finder, перейти в меню службы и выбрать "заменить текст", заполнить, как вы хотите, чтобы текст был изменен или заменен-и нажмите "Продолжить", чтобы применить настроенные изменения.
for n in *.MP4.mov do mv $n $(echo $n | sed -e 's/.MP4//') done
Это будет работать даже на действительно старых оболочках, которые не имеют подстановки параметров, и это немного более читабельно для моих глаз, по крайней мере.
чтобы проверить печать операции:
for file in *.MP4.mov; do j=`echo $file | cut -d . -f 1`;j=$j".mov";echo mv \"$file\" \"$j\"; done
чтобы заставить его работать:
for file in *.MP4.mov; do j=`echo $file | cut -d . -f 1`;j=$j".mov";mv "$file" "$j"; done
на mac OSX вы можете установить
rename
команда через Homebrew:brew install rename
затем вы можете переименовать с помощью find / replace из этой папки в командной строке:
rename 's/\.MP4\././' *
вы также можете увидеть больше вариантов, используя
man rename
.
vimv позволяет переименовывать несколько файлов, используя возможности редактирования текста Vim.
ввод vimv открывает окно Vim, в котором перечислены все файлы, и вы можете выполнить сопоставление шаблонов, визуальный выбор и т. д. Для редактирования имен. После выхода из Vim файлы будут переименованы.
[отказ от ответственности: я автор инструмент]
OS X имеет
Rename Files…
пункт контекстного меню, которое вызывается при выборе двух или более файлов в Finder. Обеспечивает ту же функцию, что и ответ автомата выше. Хотя Automator предоставляет вам инструменты, чтобы пойти дальше, если вы хотите.(Я знаю, что ОП попросил терминал, но 33 других, таких как Automator response)