Copia arquivos de m3u para destino

2

Eu tenho uma playlist, m3u extended, formatada como:

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

Meu problema é que parece que a quebra de linha é codificada como '\ n \ r', o que dificulta o loop no arquivo:

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

Também há alguns flacs, mas isso é outro problema ... O problema é o seguinte:

cp: cannot stat '#EXTINF:125,5 /home/www/Music/Test/test 123 - test.mp3\r': No such file or directory

Meus dois problemas são: o primeiro "'" e o caractere de término' \ r 'estão mal colocados. Existe alguma maneira melhor de colocar isso no ZSH / Bash para que eu possa copiar minha playlist para o meu Android?

Melhor www

    
por www 19.10.2011 / 20:28

1 resposta

0

Eu usaria o grep e o tr:

grep -v '#' test.m3u | tr -d '\r' | while read line ; do cp "$line" "test/" ; done

Isso funcionará em todos os arquivos da lista de reprodução, pois tudo, exceto os nomes e caminhos de arquivos, começa com # em um arquivo .m3u.

Editar: O modo sed para fazer isso é:

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

    
por 19.10.2011 / 23:17

Tags