Pregunta Copie archivos de m3u a su destino


Tengo una lista de reproducción, m3u extendida, formateada como:

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

Mi problema es que parece que el salto de línea está codificado como '\ n \ r', lo que hace que el bucle sobre el archivo sea difícil:

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

También hay algunos flacs, pero ese es otro problema ... El problema con esto es el siguiente:

cp: no se puede establecer `#EXTINF: 125,5 / home / www / Music / Test / test 123 -   test.mp3 \ r ': No existe tal archivo o directorio

Mis dos problemas son: el primer "` "y el carácter de terminación '\ r' están fuera de lugar. ¿Hay alguna forma mejor de pase esto en ZSH / Bash para poder copiar mi lista de reproducción a mi Android?

Mejor, www


2


origen




Respuestas:


Yo usaría grep y tr en su lugar:

grep -v '#' test.m3u | tr -d '\ r' | mientras lee la línea; hacer cp "$ line"   "prueba/" ; hecho

Esto funcionará en todos los archivos de la lista de reproducción, ya que todo, excepto los nombres de los archivos y las rutas, comienza con # en un archivo .m3u.

Editar: La mejor forma de hacer esto es:

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


0