Переименовать имена mp3-файлов по шаблону

Переименовать имена mp3-файлов по шаблону

У меня есть список похожих имен, например:

/A/B/C/D/E/F/filename_album1-003.mp3

это больше похоже на альбом\d+

Я бы хотел изменить это на что-то вроде

/A/B/C/D/E/F/filename_song-3.mp3

songэто просто фиксированная строка.

Я пробовал что-то вроде basename -s '.mp3'and then, sed -e /_album//gно это пропускает цифру ` и не удаляет все начальные 001. Как это сделать?

решение1

С zsh:

$ autoload zmv # best in ~/.zshrc
$ zmv -n '(**/)(*_)*-0#(<->.mp3)' '$1$2song-$3'
mv -- A/B/foo_bar-0002.mp3 A/B/foo_song-2.mp3

удалите -n, если удовлетворены.

решение2

Попробуй это :

rename -n 's/_album1-0*/-song-/' /A/B/C/D/E/F/filename_album1-003.mp3

(уберите -nпереключатель, если ваши тесты в порядке)

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

Если вы выполните следующую команду ( GNU)

$ file "$(readlink -f "$(type -p rename)")"

и у вас есть такой результат

.../rename: Perl script, ASCII text executable

и не содержащие:

ELF

тогда это, кажется, правильный инструмент =)

Если нет, сделать его значением по умолчанию (обычно это уже так) Debianи производным, например Ubuntu:

$ sudo update-alternatives --set rename /path/to/rename

(замените /path/to/renameна путь вашей perl's renameкоманды.


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


И последнее, но не менее важное: этот инструмент изначально был написан Ларри Уоллом, отцом Perl.

решение3

Я не понимаю, откуда вы взяли новое название «песни», вы начинаете с ... filename_album1-003.mp3и переходите к filename_song-3.mp3...

Если вы получаете название песни из тега ID3, то использование программы, которая может переименовывать mp3 из информации тега, будет проще. Например, easytag, mp3rename, lltag... их несколько в репозиториях Debian и других

Связанный контент