新一篇: 收集整理的Linux下的小技巧(四) - 在Ubuntu创建自己的开发环境缘由
同事们总是会有新的发现,在某人的blog上面 找到了《51首电视台使用频率最高经典背景音乐》(), 发现这些音乐确实不错,应大家的要求写了个简单的脚本来下载这些曲目。
获取这个脚本我已经将这个脚本上载到http://www.shaohui.org/downloads/mp3get.sh,可以直接用下面的命令下载。
wget http://www.shaohui.org/downloads/mp3get.sh
如何使用
直接执行该脚本即可,如果你是在内网,可能需要设置代理服务器。
sh mp3get.sh
脚本开始下载后,会在当前目录建立一个mp3.txt文件,然后把所有下载的mp3的名字写入该文件,对应的mp3用数字编号,如1.mp3,30.mp3
存在的问题本来打算把文件名也自动改成中文的,不过当重命名以后遇到乱码,暂时放在这里,期待有人帮着解决。
源代码如果你不能够下载,可以直接拷贝source到一个文件,然后再执行就可以了。
#!/bin/bash
#
# a shell script to download mp3 from website
# shaohui.zheng#gmail.com
#
URL=http://hi.baidu.com/saden/blog/item/178339c773a28eded100608a.html
O="--connect-timeout=5 --dns-timeout=5 --timeout=1200 -t 2"
tmp1=`mktemp`
tmp2=`mktemp`
mp3list=`mktemp`
# display a message with plain text
function show()
{
echo -en "" # set font color as blue
echo -e "$*"
echo -en "" # restore font color as normal
}
wget $URL -O $tmp1
dos2unix $tmp1 > /dev/null 2>&1
grep '<strong>[0-9]*\.' $tmp1 | sed 's#.*<strong>##g' | sed 's#<.*##' | tr " " "_" > mp3.txt
cp mp3.txt $mp3list
grep "<a href.*\.mp3" $tmp1 | sed 's/.*href="//' | awk -F\" '{ print $1 }' | uniq> $tmp2
total=`cat mp3.txt | wc -l`
cnt=1
while [ -s $mp3list ]
do
mp3url=`head -1 $tmp2`
mp3cnt=$cnt
mp3name=`head -1 $mp3list`
show "Downloading $mp3name ($cnt/$total)"
sed -i 1d $tmp2
sed -i 1d $mp3list
wget $mp3url $O -O "${mp3cnt}.mp3"
cnt=`expr $cnt + 1`
done
rm $tmp1 $tmp2 $mp3list -f
show "All Done"