Работа с mp3 тегами

программирование Linux mp3 bash

Недавно нашел скрипт перекодировки тегов с СР1251 на UTF-8 (*1).. выполнил.. работает.. и стало интересно (: в системе нашел похожую команду(*2) по которой можно менять содержимое самого тега..

как будет примерно выглядеть скрипт для полной замены тега песни если брать артиста альбом и название песни с ФС..
Структура музыкального каталога "~/$Артист/$Год - $Альбом/$Номер-Песни - $Название-Песни.mp3"

(*1) find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251

(*2) man mid3v2

Я с пингвином только недавно дружу и готового скрипта не жду( но не откажусь (: ) подскажите хотябы как использовать RegExp в bash
ЗЫ с переменными работать умею (:

Примечание:
использовал

find -iname '*.mp3' -print0 | xargs -0 lltag -F "./%a/%d - %A/%n - %t.mp3"

получил:

Constant subroutine __USE_POSIX undefined at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/features.ph line 9.
Constant subroutine __USE_POSIX2 undefined at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/features.ph line 10.
Constant subroutine __USE_POSIX199309 undefined at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/features.ph line 11.
Constant subroutine __USE_POSIX199506 undefined at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/features.ph line 12.
Constant subroutine __USE_LARGEFILE undefined at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/features.ph line 18.
Constant subroutine __USE_FILE_OFFSET64 undefined at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/features.ph line 20.
Constant subroutine __USE_BSD undefined at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/features.ph line 21.
Constant subroutine __USE_SVID undefined at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/features.ph line 22.
Constant subroutine __USE_MISC undefined at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/features.ph line 23.
Constant subroutine __USE_ISOC99 undefined at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/features.ph line 107.
Constant subroutine __GNU_LIBRARY__ undefined at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/features.ph line 175.
Operator or semicolon missing before &__inline at (eval 89) line 1.
Ambiguous use of & resolved as operator & at (eval 89) line 1.

Processing file "./Otep/2002 - Sevas Tra/01 - Otep - Tortured.mp3"...
Trying to parse filename with user-provided formats...
'./%a/%d - %A/%n - %t.mp3' does not match.
Didn't find any parser!
There are no current tag values.
Use these tag values [yaPCEDZROnqQ] (default is yes, h for help) ? n
Skipping tagging for this file...

и так далее :(
Ответы:
Лучше почитайте man lltag
Должно что-то такое получиться:
lltag -F "%a/%d - %A/%n - %t" ~/*
.mp3 из строки формата уберите
easytag и kid3, IMHO нагляднее и удобнее.
Первую использую постоянно, во второй нужно уточнить правильность сохранения id3v1 и id3v2.4


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.