`

linux下转换中文歌名编码的好帮手

阅读更多

自从用了ubuntu之后,一直有一件事比较郁闷,就是有些从网上下载的歌曲,在ubuntu的播放器中会显示乱码,而在windwos下任意播放器中都显示正常。大概是因为linux和windows下对文件编码的识别存在差异。

碰巧在ubuntu中文论坛遇上了一个好工具, 可以方便转换歌曲信息编码, 于是ubuntu下能正常看到中文了,开心。这个工具还是带图形界面的, 使用很简单,叫做konvid:

http://nlyrics.7do.net/konvid/screenshot.html

 

不过还有一个朋友提供了一段脚本:

xiooli(~)╠♦ cat ./.bin/mrename
#!/bin/bash
# coded by xiooli
#用法:
#   1,重命名:先cd到你的音乐目录,然后在终端里运行脚本mrename,将会对当前目录的所有拥有标签
#的音乐进行重命名,格式为:标题-艺人.扩展名,改名对应情况会记录在当前目录下的 remane-时间.list 文
#件里,方便恢复;
#   2,恢复原名:mrename -r ./remane-时间.list
#注意:
#   需要安装python-mutagen包,运行时会更新音乐标签的编码为当前locale。

rename() {
   list="rename-$(date +%m-%d-%k-%M).list"
   >"$list"
   ls |while read name;do
      ar=`mid3v2 -l $name |grep TPE1 |sed 's/^.*=//'`
      ti=`mid3v2 -l $name |grep TIT2 |sed 's/^.*=//'`
      tl=`echo $name |sed 's/^.*\.//'`
      [ "$ti" ] && mid3iconv -e gb2312 "$name"
      [ "$ti" ] || continue
      [ "$name" != "$ti-$ar.$tl" ] && mv "$name" "$ti-$ar.$tl" &&\
      echo -e "重命名\033[;32m <$name> \033[0m为\033[;32m <$ti-$ar.$tl> \033[0m" \
      && echo "$name:$ti-$ar.$tl" >>"$list"
   done   
   
}
recover() {
   for lst in `cat $1 |sort |uniq`;do
      nm1=`echo $lst |sed 's/^.*://'`   
      nm0=`echo $lst |sed 's/:.*$//'`
      [ -e "$nm1" -a ! -e "$nm0" ] && mv "$nm1" "$nm0" &&\
      echo -e "恢复\033[;32m <$nm1> \033[0m为\033[;32m <$nm0> \033[0m"
   done
}

if [ "$1" = "-r" ];then
   echo "即将从 "$2" 中恢复命名"
   read -p "确认?y/n :" a
   if [ $a = "y" ];then
      [ "$2" ] && recover "$2"
      [ "$2" ] || echo "未选择list文件!"
   else
      exit
   fi
else
   echo "即将重命名当前文件夹的所有音乐"
   read -p "确认?y/n :" b
   [ $b = "y" ] && rename
fi

 也不知道有用没有,看起来很牛b

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics