Как переименовать файлы используя Terminal - PullRequest
0 голосов
/ 31 мая 2019

Может кто-нибудь порекомендовать хорошее решение для рекурсивного удаления нежелательных букв в именах файлов удалить

.720p.BluRay.x264-[YTS.AM]

Например:

 Yellow Submarine (1968) [BluRay] [720p] [YTS.AM]
│   ├── www.YTS.AM.jpg
│   └── Yellow.Submarine.1968.720p.BluRay.x264-[YTS.AM].mp4
├── You Might Be The Killer (2018) [BluRay] [720p] [YTS.AM]
│   ├── www.YTS.AM.jpg
│   └── You.Might.Be.The.Killer.2018.720p.BluRay.x264-[YTS.AM].mp4
├── Your Name (2016) [BluRay] [720p] [YTS.AM]
│   ├── www.YTS.AM.jpg
│   └── Your.Name.2016.720p.BluRay.x264-[YTS.AM].mp4

становится:

 Yellow Submarine (1968) [BluRay] [720p] [YTS.AM]
│   ├── www.YTS.AM.jpg
│   └── Yellow.Submarine.1968.mp4
├── You Might Be The Killer (2018) [BluRay] [720p] [YTS.AM]
│   ├── www.YTS.AM.jpg
│   └── You.Might.Be.The.Killer.2018.mp4
├── Your Name (2016) [BluRay] [720p] [YTS.AM]
│   ├── www.YTS.AM.jpg
│   └── Your.Name.2016.mp4

1 Ответ

1 голос
/ 31 мая 2019

Поскольку удаляемая строка выглядит одинаково для каждого файла, вы можете использовать find и rename для решения этой проблемы:

find . -type f -exec rename 's/\.720p\.BluRay\.x264\-\[YTS\.AM\]//' '{}' \;

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

Для первого тестирования вы можете использовать флаг -n в этой команде переименования, чтобы увидеть, что она будет делать, если вы позволите ей действовать (без флага -n):

find . -type f -exec rename -n 's/\.720p\.BluRay\.x264\-\[YTS\.AM\]//' '{}' \;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...