Привет всем! Решил привести свою музыкальную коллекцию в порядок, посему надо отредактировать теги. В целых дискографиях оч. долго удалять несколько символов в тегах. Знаю, что есть скрипты для работы с тегами, но программированием не владею, посему прошу помощи.
Нужен скрипт, который можно натравить на папку и который может удалить первые N символов в определЁнном поле (в моЁм случае это поле "Альбом") тега мультимедиа-файла (mp3, ogg, flac). В идеале чтобы он мог и переходить по папкам, т.е. папка Artist, в ней Album_1, Album_2. И чтобы натравить скрипт на папку Artist, а он сам будет переходить в Album_1, Album_2 и т.д.
Удаление первых N символов в тегах мультимедиа-файлов (Нужен такой скрипт)
Модераторы: /dev/random, Модераторы разделов
-
- Сообщения: 874
- Статус: Странный экспериментатор...
-
- Сообщения: 25
Re: Удаление первых N символов в тегах мультимедиа-файлов
Программ меняющих теги много, а обход делает find. Вот как я менял тег title с "КАКАЯ-ТО ПЕСНЯ" на "Какая-то Песня":
Скрипт может корявый - на скорую руку и для себя, но рабочий
Код:
#!/bin/bash
[[ $# -eq 0 ]] && ARG="." || ARG=${1}
EditTag() {
#информация читается taginfo, пишется audiotag. Замените на любые другие консольные утилиты
TITLE=$(taginfo ${1} | egrep "^TITLE=" | sed -e "s/^TITLE=//g" -e 's/"//g')
#здесь sed или perl для нужной вам замены
TITLE=$(perl -e "$(echo '$_='"\"${TITLE}\""';s/^(.*)$/\L$1\E/g ; s/(\A)(.)/$1\u$2/g ; s/( )(.)/$1\u$2/g ;print $_, "\n";')")
audiotag -t "${TITLE}" "${1}"
}
until [[ -z ${ARG} ]]; do
#это для симлинков
while [[ -L ${ARG} ]]; do
ARG=$(readlink ${ARG})
done
if [[ -d ${ARG} ]]; then
#здесь будет обход
find ${ARG} -iname "*.mp3" | while read y; do
EditTag ${y}
done
elif [[ -f ${ARG} ]]; then
EditTag ${ARG}
fi
shift
ARG=${1}
done
Скрипт может корявый - на скорую руку и для себя, но рабочий