Иногда требуется навести порядок среди накачанных торрентов или просто прибраться в домашней директории, в виндах люди используют Windows Commander - двухпанельный файловый менеджер, в Linux нет особой необходимости в этом, переместить и переименовать пару файлов можно с помощью nautilus, а вот разобрать такое барахло как доктор хаус или прослушка вручную очень утомительно. Но можно воспользоваться утилитой rename, эта утилита предназначена для группового переименования файлов и её мощь заключается в привычных всем регулярных выражениях с синтаксисом поточного редактора sed
Например в директории имеются файлы
Доктор Хаус/s04$ ls
House.M.D.s04e01.rus.lostfilm.tv.ogv House.M.D.s04e02.rus.lostfilm.tv.ogv House.M.D.s04e03.rus.lostfilm.tv.ogv House.M.D.s04e04.rus.lostfilm.tv.ogv
House.M.D.s04e05.rus.lostfilm.tv.ogv House.M.D.s04e06.rus.lostfilm.tv.ogv House.M.D.s04e07.rus.lostfilm.tv.ogv House.M.D.s04e08.rus.lostfilm.tv.ogv
House.M.D.s04e09.rus.lostfilm.tv.ogv House.M.D.s04e10.rus.lostfilm.tv.ogv House.M.D.s04e11.rus.lostfilm.tv.ogv House.M.D.s04e12.rus.lostfilm.tv.ogv
House.M.D.s04e13.rus.[tfile.ru].ogg House.M.D.s04e14.rus.[tfile.ru].ogg House.M.D.s04e15.rus.[tfile.ru].ogg House.M.D.s04e16.rus.[tfile.ru].ogg
Задаём регулярное выражение подобное выражения sed, я хочу удалить всё начиная с суфикса rus и до конца строки, при этом заменить везде расширение на ogv, под эту задачу походит вот такое регулярное выражение
rename 's/rus.*/ogv/gi' House.M.D.s04e*
Доктор Хаус/s04$ ls
House.M.D.s04e01.ogv House.M.D.s04e04.ogv House.M.D.s04e07.ogv House.M.D.s04e10.ogv House.M.D.s04e13.ogv House.M.D.s04e16.ogv
House.M.D.s04e02.ogv House.M.D.s04e05.ogv House.M.D.s04e08.ogv House.M.D.s04e11.ogv House.M.D.s04e14.ogv
House.M.D.s04e03.ogv House.M.D.s04e06.ogv House.M.D.s04e09.ogv House.M.D.s04e12.ogv House.M.D.s04e15.ogv
Вот и всё, одна команда и сколько угодно файлов обработано
Утилита rename работает так, находит в имени файлов, а список файлов задаётся последним параметром, подстроку в заданном регулярном выражении, в моём случае
House.M.D.s04e16.rus.[tfile.ru].ogg House.M.D.s04e01.rus.lostfilm.tv.ogv
жирным выделена часть соответвующая выражению, а затем преобразует её к заданному виду, в моём случае заменяет её на подстроку ogv
Для примера часто требуется убрать символы подчёркивания из имён накачанных файлов, делается это так
rename 's/_/ /gi' *.avi *.ogv
По-моему всё просто, быстро и чётко
и что удивительно, по умолчанию Nautilus не имеет отображать превью фильмов в формате ogv (ogg умеет), но если имена файлов выглядят вот так, вот работает замечательно
Вот тут есть ещё примеры группового переименования файлов в Linux http://linsovet.com/mass-file-renaming
Комментариев 0