и спасибо, что нашли минутку для чтения, на данный момент я пытаюсь закончить и отшлифовать небольшую радиостанцию с помощью icecast, на самом деле все уже работает.
однако есть программа под названием ezstream, которая просто транслирует музыку в icecast, когда никого нет в прямом эфире, это самый распространенный автодиджей, использующий плейлисты.
указанный плейлист может воспроизвести один раз, и программа закроется, и это именно то, что я хочу здесь использовать, мне удалось автоматически создать два разных плейлиста, один со всей музыкой, а другой с рекламой, джинглами и звуковыми байтами, и в основном они просто список файлов, хранящихся на компьютере. как следующее, очевидно, у них есть имена и прочее.
это будет плейлист1
/home/mp3/albums/album1/title1.mp3
/home/mp3/albums/album1/title2.mp3
/home/mp3/albums/album1/title3.mp3
/home/mp3/albums/album1/title4.mp3
/home/mp3/albums/album1/title5.mp3
/home/mp3/albums/album2/title1.mp3
/home/mp3/albums/album2/title2.mp3
/home/mp3/albums/album2/title3.mp3
/home/mp3/albums/album2/title4.mp3
/home/mp3/albums/album2/title5.mp3
плейлист2 очень похож, но содержит только рекламу, поэтому выглядит так
/home/mp3/commercials/commercial1.mp3
/home/mp3/commercials/commercial2.mp3
/home/mp3/commercials/commercial3.mp3
/home/mp3/commercials/commercial4.mp3
/home/mp3/commercials/commercial5.mp3
та часть, где я критически застрял, заключается в слиянии тех, что в соотношении 2: 1 или 3: 1 (если бы вы могли помочь мне с обоими кодами, это тоже было бы здорово).
конечный результат должен выглядеть примерно так
/home/mp3/albums/album1/title1.mp3
/home/mp3/albums/album1/title2.mp3
/home/mp3/commercials/commercial1.mp3
/home/mp3/albums/album1/title3.mp3
/home/mp3/albums/album1/title4.mp3
/home/mp3/commercials/commercial2.mp3
/home/mp3/albums/album1/title5.mp3
/home/mp3/albums/album2/title1.mp3
/home/mp3/commercials/commercial2.mp3
и так до тех пор, пока оба файла не будут полностью объединены, пока мне удалось найти только этот код, но он почему-то не работает, выдает ошибки, связанные с синтаксисом и отсутствием символа ‹.
АВК-код:
awk ‘FNR==NR{
song[FNR]=$0;
next
}
{
print song[FNR+line];line++;
print song[FNR+line]
print $0
}’ playlist1.m3u playlist2.m3u
все это надо вывести в третий файл скажем mergedplaylists.m3u
я не создавал этот код, хотя я пытался с ним возиться какое-то время, одна вещь, которая мне не очень ясна, это то, почему там написано «песня», можно ли ее изменить на что-то другое? сказать "альбом"?
код вообще не работает, ничего не пишет в выходной файл (и я не знаю, правильно ли это).
я надеюсь, что кто-то может помочь мне с конкретным случаем, AWK кажется полезным, но он очень загадочный, и я нахожу много проблем, чтобы понять его...
еще раз спасибо
`
) вместо обратной галочки ('
) в качестве первого символа awk-скрипта. Слово song — это просто имя переменной, используемое для обозначения массива — вы можете использовать любое слово для имени переменной. - person Ed Morton   schedule 05.04.2013