как я могу переименовать файлы с помощью терминала? - PullRequest
57 голосов
/ 22 марта 2011

У меня есть набор файлов, все они nnn.MP4.mov как я могу переименовать их так, чтобы это было просто nnn.mov?

Ответы [ 10 ]

84 голосов
/ 22 марта 2011

Сначала выполните пробный запуск (фактически не будет переименовывать файлы) со следующим:

for file in *.mov
do
  echo mv "$file" "${file/MP4./}"
done

Если все выглядит нормально, удалите echo из третьей строки, чтобы фактическипереименуйте файлы.

35 голосов
/ 28 февраля 2012

Я только что успешно использовал Automator (впервые мне это надоело), ​​и он работает очень хорошо.Я сохранил автоматизацию как сервис.Потребовалось около 10 секунд, чтобы что-то легко использовать повторно:

  1. Открыть Automator.
  2. В качестве типа документа выберите «Сервис».
  3. Изменить сервис получает выбранный »Текст "в" файлы и папки ".
  4. Попробуйте изменить" любое приложение "на Finder.
  5. На боковой панели выберите" Файлы и папки "(в разделе" Библиотека ") и из перечисленных действий, в центральном столбце перетащите «Переименовать элементы Finder» на правую сторону и поместите его в «Перетащите действия или файлы сюда, чтобы создать рабочий процесс».
  6. Измените только что добавленное действие с «Добавить дату или время»."to" Сделать последовательным ".
  7. Нажмите" Параметры "в нижней части действия и установите флажок" Показать это действие при запуске рабочего процесса ".
  8. Нажмите" CMD + S ", чтобысохранить службу как что-то вроде «Заменить текст» ..
  9. Готово!

Теперь вы можете щелкнуть правой кнопкой мыши любой элемент в Finder, перейти в меню «Сервис» и выбрать «Заменить текст».", укажите, как вы хотите, чтобы текст был изменен или заменен- и нажмите «Продолжить», чтобы применить настроенные изменения.

11 голосов
/ 01 октября 2013
for n in *.MP4.mov
do
   mv $n $(echo $n | sed -e 's/.MP4//')
done

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

10 голосов
/ 25 апреля 2013

Чтобы проверить печать операции:

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
5 голосов
/ 04 августа 2016

В Mac OSX вы можете установить команду rename через Homebrew: brew install rename

Затем вы можете переименовать, используя поиск / замену из этой папки в командной строке:

rename 's/\.MP4\././' *

Вы также можете увидеть больше вариантов, используя man rename.

2 голосов
/ 21 мая 2018

OS X имеет элемент контекстного меню Rename Files…, который вызывается при выборе двух или более файлов в Finder. Предоставляет ту же функцию, что и ответ Automator выше. Хотя Automator предоставляет вам инструменты, чтобы идти дальше, если хотите.

(я знаю, что OP запросил терминал, но 33 других, например, ответ Automator)

1 голос
/ 13 августа 2017

vimv позволяет переименовывать несколько файлов, используя возможности редактирования текста Vim.

При входе в vimv открывается окно Vim, в котором перечислены все файлы, и вы можете выполнить сопоставление с образцом, визуальный выбор и т. Д. Для редактирования имен. После выхода из Vim файлы будут переименованы.

[Отказ от ответственности: я автор инструмента]

1 голос
/ 13 августа 2013
for i in `ls *png`;do echo mv $i "${i%%.*}"@xx."${i##*.}";done
0 голосов
/ 22 марта 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 один будут перезаписаны, поэтому используйте их осторожно ^^

0 голосов
/ 22 марта 2011
ls -1 *.MP4.mov | while read f; do mv -i "$f" "$(basename \"$f\" .MP4.mov)"; done

Редактировать: полностью переписано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...