Пакетная сортировка песен в каталоге по исполнителю в Unix

У меня есть много mp3-песен в каталоге, и я хочу отсортировать их по исполнителю, чтобы имя каждого исполнителя было каталогом, содержащим музыку этого исполнителя.

3 ответа

Это предполагает, что ваши mp3-теги имеют формат id3v2. id3v1 форматирует вещи немного по-другому. Я рекомендую что-то вроде mediainfo для этого. Этот пример использует id3v2

для файла в *.mp3; делать
    IFS=$':'
    artist="$(id3v2 -l "${file}" | grep "TPE1" | awk '{ print $2 }')"
    # Ваше имя исполнителя теперь хранится в $artist.
    # Этот пример просто создает каталог Artist и перемещает в него файл.
    # Ужасный способ организовать музыку, но это демонстрация!
    [[! -d "${artist}" ]] && mkdir -p "${artist}"
    mv -f "${file}" "${artist}"
сделанный

Реальным решением является использование чего-то вроде MusicBrainz Picard.

Я бы сделал это на Python, используя инструмент, указанный в этом ответе о переполнении стека eyeD3.

Я не уверен, на какой ОС вы работаете, но так как ваш вопрос был помечен как Unix-программирование, я предполагаю, что вы используете * ix. Итак, если вы можете установить id3tool, вы можете запустить следующую командную строку BASH:

find . -name "*.mp3" | while read n; do 
    dir=`id3tool "$n" | grep Artist | cut -f 3 | sed 's/\s*$//'`; 
    mkdir -p "$dir"; 
    mv "$n" "$dir"/"$n" ; 
done

ОБЪЯСНЕНИЕ:

Этот маленький скрипт будет перебирать каждый из ваших mp3 файлов, извлекать имя исполнителя, используя id3tool и сохранить его в переменной $dir , Затем он создаст каталог с именем исполнителя (если он еще не существует) и перейдет к перемещению файла в этот каталог.

Вы также можете сделать это с помощью графического интерфейса с помощью музыкальных проигрывателей, таких как amarok, которые предлагают эту функцию (или, по крайней мере, раньше). Существуют также различные редакторы id3, просто ищите ваш любимый программный источник, по крайней мере, некоторые из них также должны это делать.

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