将文件从 m3u 复制到目标

将文件从 m3u 复制到目标

我有一个播放列表,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

还有一些 flac,但那是另一个问题...问题如下:

cp:无法统计“#EXTINF:125,5 /home/www/Music/Test/test 123 - test.mp3\r”:没有此文件或目录

我有两个问题:第一个“`”和终止字符“\r”放错了位置。有没有更好的方法在 ZSH/Bash 中粘贴它,以便我可以将播放列表复制到我的 Android?

最好的,www

答案1

我会改用 grep 和 tr:

grep -v'#'test.m3u | tr -d'\r'| 读取行时;执行 cp"$line""test/";完成

这将适用于播放列表中的所有文件,因为 .m3u 文件中除文件名和路径之外的所有内容都以 # 开头。

编辑: sed 的实现方式是:

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

相关内容