Удаление первых N символов в тегах мультимедиа-файлов (Нужен такой скрипт)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
kma21
Сообщения: 874
Статус: Странный экспериментатор...

Удаление первых N символов в тегах мультимедиа-файлов

Сообщение kma21 »

Привет всем! Решил привести свою музыкальную коллекцию в порядок, посему надо отредактировать теги. В целых дискографиях оч. долго удалять несколько символов в тегах. Знаю, что есть скрипты для работы с тегами, но программированием не владею, посему прошу помощи.
Нужен скрипт, который можно натравить на папку и который может удалить первые N символов в определЁнном поле (в моЁм случае это поле "Альбом") тега мультимедиа-файла (mp3, ogg, flac). В идеале чтобы он мог и переходить по папкам, т.е. папка Artist, в ней Album_1, Album_2. И чтобы натравить скрипт на папку Artist, а он сам будет переходить в Album_1, Album_2 и т.д.
Спасибо сказали:
Heimdall
Сообщения: 25

Re: Удаление первых N символов в тегах мультимедиа-файлов

Сообщение Heimdall »

Программ меняющих теги много, а обход делает 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

Скрипт может корявый - на скорую руку и для себя, но рабочий
Спасибо сказали: