У меня есть набор файлов, все nnn.MP4.mov
. Как их переименовать, чтобы было просто nnn.mov
?
Как я могу переименовать файлы в пакетном режиме с помощью Терминала?
Ответы (9)
Во-первых, выполните пробный прогон (фактически не переименовывайте какие-либо файлы) со следующим:
for file in *.mov
do
echo mv "$file" "${file/MP4./}"
done
Если все в порядке, удалите echo
из третьей строки, чтобы фактически переименовать файлы.
rename.sh
файл; 2. Сделайте его исполняемым chmod 755 rename.sh
; 3. запустить его из текущей папки, в которой есть файлы для переименования, и сценарий оболочки ./rename.sh
; 4. Если результат хороший, удалите echo
из скрипта и снова запустите. Мне нужно было добавить расширение к группе файлов. поэтому мое действие в скрипте было таким: mv "$file" "${file}.jpeg"
- person Anatolii Pazhyn; 10.09.2016
for file in *.mov; do echo mv "$file" "${file/MP4./}"; done
, ;
делает свое дело.
- person Evi Song; 29.04.2021
echo mv "$file" "${file/[replace_this]/[with_this]}"
- person HLeb; 20.07.2021
Я только что успешно использовал Automator (впервые потрудился), и он работает очень хорошо. Я сохранил автоматизацию как услугу. Потребовалось около 10 секунд, чтобы сделать что-то, что можно легко использовать повторно:
- Откройте Automator.
- В качестве типа документа выберите «Услуга».
- Служба изменения получает выбранный «Текст» в «файлы и папки».
- Подумайте о том, чтобы заменить "любое приложение" только на Finder.
- На боковой панели выберите «Файлы и папки» (в разделе «Библиотека») и из перечисленных действий в центральном столбце перетащите «Переименовать элементы Finder» в правую часть и поместите его в «Перетащите сюда действия или файлы, чтобы создать рабочий процесс. "
- Измените действие, которое вы только что добавили, с «Добавить дату или время» на «Сделать последовательным».
- Щелкните «Параметры» внизу действия и установите флажок «Показывать это действие при запуске рабочего процесса».
- Нажмите «CMD + S», чтобы сохранить службу как что-то вроде «Заменить текст».
- Сделанный!
Теперь вы можете щелкнуть правой кнопкой мыши любой выбор в Finder, перейти в меню «Сервис» и выбрать «Заменить текст», указать, как вы хотите изменить или заменить текст - и нажать «Продолжить», чтобы применить настроенные изменения.
Rename Files…
по умолчанию, моя - внутри подменю «Службы»!
- person wide_eyed_pupil; 21.05.2018
В Mac OSX вы можете установить команду rename
через Homebrew: brew install rename
Затем вы можете переименовать, используя команду find / replace из этой папки в командной строке:
rename 's/\.MP4\././' *
Вы также можете увидеть больше параметров, используя man rename
.
Чтобы проверить работу печати:
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
for n in *.MP4.mov
do
mv $n $(echo $n | sed -e 's/.MP4//')
done
Это будет работать даже на действительно старых оболочках, в которых нет подстановки параметров, и, по крайней мере, для меня это немного более читабельно.
_MG_
в своем имени, и мне нужно было идеально изменить его на -IMG_
, изменив с помощью *
и *
посередине. Сработал шарм. Спасибо!
- person Danijel-James W; 01.10.2014
В OS X есть Rename Files…
пункт контекстного меню, который вызывается при выборе двух или более файлов в Finder. Обеспечивает ту же функцию, что и ответ Automator выше. Хотя Automator предоставляет вам инструменты для дальнейшего развития, если вы хотите.
(Я знаю, что OP запросил терминал, но еще 33 вроде ответа Automator)
vimv позволяет переименовывать несколько файлов, используя возможности редактирования текста Vim.
При вводе vimv открывается окно Vim, в котором перечислены все файлы, и вы можете выполнять сопоставление с образцом, визуальный выбор и т. Д. Для редактирования имен. После выхода из Vim файлы будут переименованы.
[Отказ от ответственности: я являюсь автором инструмента]
ls -1 *.MP4.mov | while read f; do mv -i "$f" "$(basename \"$f\" .MP4.mov)"; done
Редактировать: полностью переписан.
"nnn.MP4.mov".mov
- person Jake Wilde; 22.03.2011
for i in *;
do j=`echo $i | cut -d . -f 1`;
j=$j".mov";
mv $i $j;
done
это обрежет все до первой точки и добавит .mov
но если некоторые файлы, например, hi.2.mov и hi.1.mov будут перезаписаны, поэтому используйте его осторожно ^^