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

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

18
задан Sathya
27.12.2022 19:36 Количество просмотров материала 2649
Распечатать страницу

3 ответа

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

for file in *.mp3; do
    IFS=$':'
    artist="$(id3v2 -l "${file}" | grep "TPE1" | awk '{ print  }')"
    # Your artist name is now stored in $artist.
    # This example just creates an artist directory and moves the file into it.
    # Terrible way to organize music, but this is a demonstration!
    [[ ! -d "${artist}" ]] && mkdir -p "${artist}"
    mv -f "${file}" "${artist}"
done

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

3
отвечен UtahJarhead 2022-12-29 03:24

Я не уверен, на какой ОС вы находитесь, но поскольку ваш вопрос был помечен как 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. Затем он создаст каталог с именем исполнителя (если только он уже не exists) и переместите файл в этот каталог.

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

0
отвечен terdon 2022-12-29 05:41

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

0
отвечен bernard paulus 2022-12-29 07:58

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх