Проектът OpenNET Рекурсивно транскодиране на FLAC файлове в MP3, като същевременно запазва ID3 тагове

функция recorder() < dir='ls -p grep "/"' for i in $dir do pushd . > /dev/null 2>&1; cd $i if [ \"*.mp3\" ] then echo 'pwd'/*.mp3; # Tuta може да се прекодира fi recoder; # рекурсия. popd > /dev/null 2>&1; готово >

2.9 , Александър Симаков ( ? ), 14:08, 26/01/2009 [^] [^^] [^^^] [отговор]+ / –
Да, но не извлича тагове от flac файлове, няма възможност да се посочи отделна директория за mp3 файлове и всъщност няма самото транскодиране! Защо се нуждаем от този скрипт? Обхождане на всички mp3 файлове и показване на техните имена? Освен това заобикаляйте flac файлове, а не mp3.

IMHO, _one-line_ вариантът с find за тази цел е много по-прост и ясен.

  • 3.11, pavlinux (ок), 12:34, 27.01.2009 г. [^] [^^] [^^^] [отговор]
  • + / –
    И тук изобщо нищо не се извлича, показах как работи find и къде е рекурсията.
  • 4.12, Андрей Митрофанов ( ? ), 13:02, 27.01.2009 г. [^] [^^] [^^^] [отговор]
  • + / –
    >Показах как >работи, където рекурсия.

    Очакваме рекурсивно прекодиране. _One_ .flac. На баш. :-P

    1.7 , AlexGAV ( ? ), 09:43, 26.01.2009 г. [отговор] [﹢﹢﹢] [ · · · ]+ / –
    Но какво ще стане, ако има интервал в името на изходния файл? Например, в директория, съдържаща 01 - The Great Marsh.flac 02 - Rhayader.flac скрипт за i в $(find . -name "*.flac" sort); направете ехо $i; готови изходи ./01 - The Great Marsh.flac ./02 - Rhayader.flac Реших този проблем чрез замяна на интервал с '_' sed, но товаперверзен, IMHO. Може ли някой да предложи по-елегантно решение?
    2.8 , Александър Симаков ( ? ), 12:55, 26.01.2009 г. [^] [^^] [^^^] [отговор]+ / –
    Забележете линията

    намирам. -име "*.flac" -print0 sort -z xargs -0 -n1

    намирам. докато четете n; направи . ; Свършен

    1.14, крик (ок), 15:16, 17.04.2010 г. [отговор] [﹢﹢﹢] [ · · · ]+ / –
    Ако етикетите не се появиха в mp3 файловете на изхода на скрипта, тогава на това място:

    >case "$tag_name" в > ЗАГЛАВИЕ) > echo -n "--tt \"$tag_value\" " > ;;

    трябва да смените името на таговете с малки букви или да пишете с малки букви чрез "", т.е. Така:

    case "$tag_name" в TITLEtitle ) echo -n "--tt \"$tag_value\" " ;;

    Очевидно откакто Александър Симаков написа прекрасния скрипт, който се обсъжда тук, има промени в изхода на командата metaflac.