Переименование файлов и каталогов

У меня есть тонна файлов фильмов и каталогов, структура имен которых: Название фильма (Автор, год) или Название фильма (Автор, год) LANG

Я намерен переименовать их всех (почти три тысячи) таким образом

Автор - Название фильма - Год - LANG

или что-то очень похожее к этому.

Мой вопрос: есть ли способ сделать пакетное переименование простым сценарием?

Заранее большое спасибо, ребята.

1
задан 10 June 2020 в 00:16

2 ответа

Хотя вы можете сделать это с помощью групп захвата регулярных выражений в инструменте переименования на основе perl, мой выбор для этого, вероятно, будет mmv ex.

$ mmv -n '* (*, *) *' '#2 - #1 - #3 - #4'
Name of the film (Author, year) LANG -> Author - Name of the film - year - LANG

Случаи с и без компонента LANG обрабатываются проще всего отдельно - для последнего случая вы можете уменьшить команду до

mmv -n '* (*, *)' '#2 - #1 - #3'

Аналогичная возможность возможна в zsh с модулем contrib zmv :

 % zmv -n '(*) \((*), (*)\) (*)' '$2 - $1 - $3 - $4'
mv -- 'Name of the film (Author, year) LANG' 'Author - Name of the film - year - LANG'

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

2
ответ дан 19 June 2020 в 21:28
  • 1-е решение от Steeldriver работает отлично. В некоторых случаях Небольшие изменения должны быть сделаны, так как некоторые названия фильмов не связаны с LANG.
  • Кстати, как это можно сделать в рекурсивном режиме? Я не нашел этот вариант в документации MMV.

Я отвечаю сам себе. После некоторых копаний в интернете и некоторых тестов мне удалось изменить файлы, содержащиеся в папках. The; используется для обозначения системы (без -r) для погружения в папки. Но ; станет первой переменной, поэтому порядок будет примерно таким:

mmv '; * (*, ). ' '# 1 # 3 - # 2 (# 4). # 5'

В этой ситуации № 1 соответствуют; а остальное - часть изменения названия.

Итак, большое спасибо Steeldriver за то, что он научил меня новому и мощному инструменту для пакетного переименования esaly. А также благодарит Элию Каган за его комментарий.

0
ответ дан 19 June 2020 в 21:28

Другие вопросы по тегам:

Похожие вопросы: