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