![Переименовать имена mp3-файлов по шаблону](https://rvso.com/image/36023/%D0%9F%D0%B5%D1%80%D0%B5%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B8%D0%BC%D0%B5%D0%BD%D0%B0%20mp3-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%20%D0%BF%D0%BE%20%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%83.png)
У меня есть список похожих имен, например:
/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 и других