* [Comm] Как скопировать теги из одного mp3 в другой? @ 2009-08-05 18:06 Olexander Chernetskyy 2009-08-05 18:58 ` Dmitry Chistikov 2009-08-06 11:19 ` Konstantin S. Uvarin 0 siblings, 2 replies; 9+ messages in thread From: Olexander Chernetskyy @ 2009-08-05 18:06 UTC (permalink / raw) To: Community Помогите плиз Нужно понизить битрейт файлов в каталоге и не потерять теги. Вот всё на что хватило ума: ---8<--- #!/bin/sh [ -d 128 ] || mkdir 128 for i in *[mM][pP]3 do lame -b 128 $i 128/$i TAG=`mp3info -p "-t %t -a %a -l %l -y %y -c %c -n %n -g %g" $i` # echo $TAG # mp3info $TAG 128/$i done --->8--- А как теперь этот $TAG использовать как список параметров для mp3info? Интуитивно чувствую, что eval должно помочь, но не могу понять как его применить. Помогите кто может. А то голова сегодня уже ничего не сображает. -- Best regards, ArCher ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] Как скопировать теги из одного mp3 в другой? 2009-08-05 18:06 [Comm] Как скопировать теги из одного mp3 в другой? Olexander Chernetskyy @ 2009-08-05 18:58 ` Dmitry Chistikov 2009-08-05 19:22 ` Max Ivanov 2009-08-06 11:19 ` Konstantin S. Uvarin 1 sibling, 1 reply; 9+ messages in thread From: Dmitry Chistikov @ 2009-08-05 18:58 UTC (permalink / raw) To: sp_archer, ALT Linux Community general discussions Ну, если отталкиваться от Вашего варианта, то у Вас уже есть соответствующая строчка, хотя и закомментированная: # mp3info $TAG 128/$i Другой вопрос, что вокруг $i (как в этой строке, так и в других случаях употребления) неплохо бы поставить двойные кавычки - а ну всякие пробелы в именах файлов окажутся? - да и главный вопрос, наверное, с нехорошими символами в самих тегах. В качестве первого приближения (не решающего, впрочем, задачу в общем случае) можно предложить добавить кавычки вокруг подставляемых параметров внутри форматной строки для mp3info, а потом передавать значение $TAG через xargs... хотя это, конечно, костыль. Ясно, что неплохо быть уверенным, что использованного типа кавычек внутри тегов нет. Если с этим проблемы - нужно, конечно, действовать аккуратней; вопрос только в том, имеет ли смысл решать эту задачу в наиболее общей постановке? -- Дмитрий Чистиков, dd1email at gmail dot com P.S. Вообще, с тегами я в последнее время на eyeD3 перешел, хотя там не все так удобно с форматом вывода... ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] Как скопировать теги из одного mp3 в другой? 2009-08-05 18:58 ` Dmitry Chistikov @ 2009-08-05 19:22 ` Max Ivanov 2009-08-06 6:54 ` Dmitry Chistikov 0 siblings, 1 reply; 9+ messages in thread From: Max Ivanov @ 2009-08-05 19:22 UTC (permalink / raw) To: ALT Linux Community general discussions > да и главный вопрос, > наверное, с нехорошими символами в самих тегах Вроде встроенный в bash printf умел экранировать ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] Как скопировать теги из одного mp3 в другой? 2009-08-05 19:22 ` Max Ivanov @ 2009-08-06 6:54 ` Dmitry Chistikov 0 siblings, 0 replies; 9+ messages in thread From: Dmitry Chistikov @ 2009-08-06 6:54 UTC (permalink / raw) To: ALT Linux Community general discussions >> да и главный вопрос, >> наверное, с нехорошими символами в самих тегах > > Вроде встроенный в bash printf умел экранировать Хм... тут дело в том, что придется отказываться от однострочника mp3info -p все-сразу-в-развернутом-виде ...ибо пробелы из форматной строки уже не получится отличить от внутритеговых. Или я неправильно понял Вашу мысль? -- Дмитрий Чистиков, dd1email at gmail dot com ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] Как скопировать теги из одного mp3 в другой? 2009-08-05 18:06 [Comm] Как скопировать теги из одного mp3 в другой? Olexander Chernetskyy 2009-08-05 18:58 ` Dmitry Chistikov @ 2009-08-06 11:19 ` Konstantin S. Uvarin 2009-08-06 12:29 ` Dmitry Chistikov 2009-08-06 16:00 ` [Comm] " Olexander Chernetskyy 1 sibling, 2 replies; 9+ messages in thread From: Konstantin S. Uvarin @ 2009-08-06 11:19 UTC (permalink / raw) To: sp_archer, ALT Linux Community general discussions On Wednesday 05 August 2009 22:06:45 Olexander Chernetskyy wrote: > Помогите плиз > Нужно понизить битрейт файлов в каталоге и не потерять теги. > Вот всё на что хватило ума: > ---8<--- > #!/bin/sh > [ -d 128 ] || mkdir 128 > for i in *[mM][pP]3 > do > lame -b 128 $i 128/$i > TAG=`mp3info -p "-t %t -a %a -l %l -y %y -c %c -n %n -g %g" $i` > # echo $TAG > # mp3info $TAG 128/$i > done Э, так mp3info умеет \n внутри -p. Ну и вот, делаем разбивку на строки и скармливаем xargs. Должно сработать. Если только там нет пункта lyrics, в котором как раз могут быть переносы строки. TAG=`mp3info -p '-t\n%t\n-a\n%a\n-l\n%l\n-y\n%y\n-c\n%c\n-n\n%n\n-g\n%g' "$i"` # more stuff... printf %s "$TAG" | xargs -d\\n mp3info 128/"$i" echo использовать нельзя, т.к. съест переносы P.S. Похоже, в mp3info баг: если в строке формата указать \x00, то она обрезается ровно по это место. -- Konstantin S. Uvarin jabber:lodin@jabber.ru фигика ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] Как скопировать теги из одного mp3 в другой? 2009-08-06 11:19 ` Konstantin S. Uvarin @ 2009-08-06 12:29 ` Dmitry Chistikov 2009-08-07 12:37 ` [Comm] [JT] " Konstantin S. Uvarin 2009-08-06 16:00 ` [Comm] " Olexander Chernetskyy 1 sibling, 1 reply; 9+ messages in thread From: Dmitry Chistikov @ 2009-08-06 12:29 UTC (permalink / raw) To: ALT Linux Community general discussions > Э, так mp3info умеет \n внутри -p. Ну и вот, делаем разбивку на строки и > скармливаем xargs. Должно сработать. Если только там нет пункта lyrics, в > котором как раз могут быть переносы строки. Иными словами, идея та же - использование xargs с учетом тех или иных ограничений на входные данные. > echo использовать нельзя, т.к. съест переносы Вы хотите сказать, что вместо printf %s "$TAG" нельзя использовать echo "$TAG" ? Если так, нельзя ли услышать обоснование? > P.S. Похоже, в mp3info баг: если в строке формата указать \x00, то она > обрезается ровно по это место. Я вообще сомневаюсь в целесообразности использования ID3v1-тегов, хотя это уже JT, если не offtopic. -- Дмитрий Чистиков, dd1email at gmail dot com ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] [JT] Как скопировать теги из одного mp3 в другой? 2009-08-06 12:29 ` Dmitry Chistikov @ 2009-08-07 12:37 ` Konstantin S. Uvarin 2009-08-07 14:26 ` Dmitry Chistikov 0 siblings, 1 reply; 9+ messages in thread From: Konstantin S. Uvarin @ 2009-08-07 12:37 UTC (permalink / raw) To: ALT Linux Community general discussions Првиетствую. > Иными словами, идея та же - использование xargs с учетом тех или иных > ограничений на входные данные. Разумеется. > > echo использовать нельзя, т.к. съест переносы > Если так, нельзя ли услышать обоснование? Был неправ. Если сделать echo "$TAG" , всё прекрасно работает. > > P.S. Похоже, в mp3info баг: если в строке формата указать \x00, то она > > обрезается ровно по это место. > Я вообще сомневаюсь в целесообразности использования ID3v1-тегов, хотя > это уже JT, если не offtopic. Я собрал аналогичный велосипед из eyeD3, оно умеет v2 и есть в репозитории. Правда, там нету -p "%a %t", поэтому дёргается сто раз для каждого файла. пока что это не то место в моей системе, которое надо оптимизировать... -- Konstantin S. Uvarin jabber:lodin@jabber.ru Главный редактор, крякнув, осушил стопку. Новости радостно закрякали в ответ. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] [JT] Как скопировать теги из одного mp3 в другой? 2009-08-07 12:37 ` [Comm] [JT] " Konstantin S. Uvarin @ 2009-08-07 14:26 ` Dmitry Chistikov 0 siblings, 0 replies; 9+ messages in thread From: Dmitry Chistikov @ 2009-08-07 14:26 UTC (permalink / raw) To: ALT Linux Community general discussions > Я собрал аналогичный велосипед из eyeD3, > оно умеет v2 и есть в репозитории. > Правда, там нету -p "%a %t", поэтому > дёргается сто раз для каждого файла. > пока что это не то место в моей системе, > которое надо оптимизировать... Хм... а что за пакет и в чем там затык возникает? Дело в том, что мой домашний велосипед на eyeD3, хотя и предназначенный для несколько иных целей, вроде как обходит синтаксические препоны... хотя, возможно, я что-то упускаю из виду. -- Дмитрий Чистиков, dd1email at gmail dot com ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Comm] Как скопировать теги из одного mp3 в другой? 2009-08-06 11:19 ` Konstantin S. Uvarin 2009-08-06 12:29 ` Dmitry Chistikov @ 2009-08-06 16:00 ` Olexander Chernetskyy 1 sibling, 0 replies; 9+ messages in thread From: Olexander Chernetskyy @ 2009-08-06 16:00 UTC (permalink / raw) To: Community ОК. Заработало. Спасибо. > On Wednesday 05 August 2009 22:06:45 Olexander Chernetskyy wrote: >> Помогите плиз >> Нужно понизить битрейт файлов в каталоге и не потерять теги. >> Вот всё на что хватило ума: >> ---8 #!/bin/sh >> [ -d 128 ] || mkdir 128 >> for i in *[mM][pP]3 >> do >> lame -b 128 $i 128/$i >> TAG=`mp3info -p "-t %t -a %a -l %l -y %y -c %c -n %n -g %g" $i` >> # echo $TAG >> # mp3info $TAG 128/$i >> done > > Э, так mp3info умеет \n внутри -p. Ну и вот, делаем разбивку на строки и > скармливаем xargs. Должно сработать. Если только там нет пункта lyrics, в > котором как раз могут быть переносы строки. > > TAG=`mp3info -p '-t\n%t\n-a\n%a\n-l\n%l\n-y\n%y\n-c\n%c\n-n\n%n\n-g\n%g' > "$i"` > # more stuff... > printf %s "$TAG" | xargs -d\\n mp3info 128/"$i" > > echo использовать нельзя, т.к. съест переносы > > P.S. Похоже, в mp3info баг: если в строке формата указать \x00, то она > обрезается ровно по это место. > > -- > Konstantin S. Uvarin jabber:lodin@jabber.ru > фигика > -- Best regards, ArCher ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-08-07 14:26 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-08-05 18:06 [Comm] Как скопировать теги из одного mp3 в другой? Olexander Chernetskyy 2009-08-05 18:58 ` Dmitry Chistikov 2009-08-05 19:22 ` Max Ivanov 2009-08-06 6:54 ` Dmitry Chistikov 2009-08-06 11:19 ` Konstantin S. Uvarin 2009-08-06 12:29 ` Dmitry Chistikov 2009-08-07 12:37 ` [Comm] [JT] " Konstantin S. Uvarin 2009-08-07 14:26 ` Dmitry Chistikov 2009-08-06 16:00 ` [Comm] " Olexander Chernetskyy
ALT Linux Community general discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 community community/ http://lore.altlinux.org/community \ mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com public-inbox-index community Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.community AGPL code for this site: git clone https://public-inbox.org/public-inbox.git