2

У меня есть плейлист, расширенный формат m3u:

#EXTM3U
#EXTINF:213,2 Tåst - (foo bar) 
/home/www/Music/Test/test 123 - test.mp3

Моя проблема в том, что кажется, что разрыв строки закодирован как '\n\r', что затрудняет зацикливание файла:

sed '/\.mp3/s/\.mp3.*/.mp3/' test.m3u | while read line ; do cp "$line" "test/" ; done

Есть также некоторые ошибки, но это другая проблема ... Проблема с этим заключается в следующем:

cp: not stat `#EXTINF: 125,5 /home /www /Music /Test /test 123 - test.mp3\r ': такого файла или каталога нет

Мои две проблемы: первый «` »и завершающий символ« \r »не на месте. Есть ли лучший способ сделать это в ZSH/Bash, чтобы я мог скопировать свой плейлист на мой Android?

Best, www

1 ответ1

0

Я бы использовал grep и tr вместо этого:

grep -v '#' test.m3u | tr -d '\r' | пока читаешь строку; do cp "$ line" "test/"; сделанный

Это будет работать со всеми файлами в списке воспроизведения, так как все, кроме имен и путей к файлам, начинается с # в .m3u-файле.

Изменить: SED способ сделать это:

sed -e 's/.$//;/#/d' test.m3u |while read line ; do cp "$line" "test/" ; done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .