|

楼主 |
发表于 2010-12-28 12:53:39
|
显示全部楼层
Post by chenzhen;2124356
很好用,谢谢,但是不是 m3u 格式更通用一些?还有,能不能一次性按不同子目录生成播放列表?因为我的音乐文件夹里面有好几十个目录。
修改了一下,可以同时支持pls及m3u两种格式,关于子目录的问题,现在来不及改了,我一会儿还要去实验室,有时间了会帮你想想的。
- #!/bin/sh
- # 本脚本将搜索当前目录下的音频文件,并生成Playlist以供VLC及Totem等软件来读取,支持pls及m3u格式;
- # 支持搜索以下格式的音频,如果需要,可以加入其他格式:mp3|ogg|wma|ape|wav|flac;
- # version 1.02.
- # E-mail:xushaohua2011@gmail.com
- printf "请选择要保存的格式:\n 1) m3u\n 2) pls\n";
- read format;
- if [ $format = 1 ]
- then
- tmp_file=Playlist-`date +%F`.m3u;
- elif [ $format = 2 ]
- then
- tmp_file=Playlist-`date +%F`.pls;
- else
- printf "格式选择错误,强制使用pls格式\n";
- format=2;
- tmp_file=Playlist-`date +%F`.pls;
- fi
- printf "请指定一个目录(需要绝对路径),直接回车的话就使用当前目录:\n";
- read search_path;
- if [ -z "$search_path" ]
- then
- search_path=`pwd`;
- fi
- touch $tmp_file ;
- # 开始搜索,忽略扩展名的大小写;
- find $search_path -iname \*.mp3 -print > $tmp_file;
- find $search_path -iname \*.wma -print >>$tmp_file;
- find $search_path -iname \*.flac -print >>$tmp_file;
- find $search_path -iname \*.wav -print >>$tmp_file;
- find $search_path -iname \*.ogg -print >>$tmp_file;
- find $search_path -iname \*.ape -print >>$tmp_file;
- # 修改
- if [ $format = 1 ]
- then
- sed -i '1i\#EXTM3U' $tmp_file;
- else
- max_line=`sed -n "$=" $tmp_file`;
- sed -i = $tmp_file;
- sed -i 'N;s/\n/=/' $tmp_file;
- sed -i 's/^/File/' $tmp_file;
- sed -i "1i\NumberOfEntries=$max_line" $tmp_file;
- sed -i '1i\[Playlist]' $tmp_file;
- fi
- exit 0;
复制代码 |
|