Переименование многих файлов в Mac OS X, пакетная обработка

Я использовал для переименования файла в Linux с помощью команды rename:

rename 's/old_pattern/new_pattern/g' *glob 

Есть ли что-то подобное в Mac OS X (Snow Leopard)?

С Homebrew , менеджер пакетов для OS X:

 brew install rename 

Затем вы можете запускать те же команды rename что и в Linux.

Используйте разумную силу ZSH (введите zsh в терминале, если вы одна из тех бедных душ, которые не используют его по умолчанию):

 autoload zmv zmv '(*).htm' '$1.html' 

ZMV следует за синтаксисом MMV .

Неуклюжий я:

 for i in *.yourfiles; do mv "$i" "`echo $i | sed 's/old/new/g'`"; done 

И если вы хотите использовать его, как я часто делаю так:

 rename 's/old/new/' *.files 

Я рекомендую использовать этот скрипт litte в ~ / bin / rename:

 #!/usr/bin/env zsh SUBSEXPR=$1 shift for i in [email protected]; do mv $i `echo "$i" | sed $SUBSEXPR`; done 

Существуют различные версии переименования . Похоже, вы ищете Perl-based.

Одна версия этой утилиты поставляется с модулем File :: Rename Perl. Вы можете установить его с помощью чего-то вроде sudo cpan -i File::Rename .

Или вы можете перейти с переименованием из Perl- пакета Debian . Это всего лишь один файл для загрузки. Поместите его туда, где вам нравится, и chmod, чтобы он исполнялся.


Альтернативой является zmv- инструмент, который поставляется с zsh . Он не имеет того же синтаксиса, но он поставляется с вашей ОС, и он может легко позаботиться о многих распространенных случаях.

Вы можете попробовать установить MacPorts и установить пакет renameutils :

Renameutils @ 0.10.0 (sysutils)

Renameutils – это набор программ, предназначенных для ускорения и менее громоздкого переименования файлов

На Mac я использую свободно доступное rename Aristotle Pagaltzis, которое, как и Debian, основано на Perl. Вы можете получить его здесь . Или посетите здесь, чтобы прочитать его в первую очередь – всегда хорошая идея.

Вам нужно поместить это где-то в ваш $PATH и сделать его исполняемым ( chmod +x rename ), и тогда вам хорошо идти.

Это не должно быть сложно, но, по-видимому, это так. Например, я хочу переименовать расширение файла от aiff до aifc.

 find . -iname "*.aiff" -exec bash -c 'mv "$0" "${0%\.aiff}.aifc"' {} \; 

Если вы ищете графический интерфейс, попробуйте Name Mangler . Он имеет функцию «предварительного просмотра», которая показывает, что произойдет, если вы перейдете к переименованию.

Эквивалентная команда в renamer (кросс-платформенная)

 $ renamer --regex --find 'old_pattern' --replace 'new_pattern' *glob 

Если вам нравится многосегмент Sublime Text, вы можете использовать его с qmv:

Файлы qmv -editor = "/ usr / bin / s3 -w"

  • Можно ли заменить группы в Java regex?
  • Как избежать запятой и двойной кавычки в то же время для CSV-файла?
  • Regex для проверки надежности пароля.
  • Является ли Java Regex Thread безопасным?
  • Ошибка «Неизвестная escape-последовательность» в Go
  • Java regex для поддержки Unicode?
  • Передача параметров в действие с помощью ModelDriven в Struts 2
  • Жадный против неохотного против властных квантификаторов
  • Удалить конечный ноль в Java
  • Проверка формата даты на языке Java
  • Проверьте соответствие строки регулярному выражению в JS
  • Давайте будем гением компьютера.