返回信息流开始在linuxsir上求助,无人问津(可能被BS了),后来狠了一下心自己解决了。下面的内容直接从linuxsir上拷贝过来的。
=====================================
我有大量的管理的很好的MP3,每个末级文件夹就是一张专辑,而且多半文件夹下还有该专辑的封面快照(都是JPG格式的),但是命名不规范,一般为folder.jpg, Folder.JPG等。
现在使用apache的mod_musicindex实现HTTP的MP3流媒体点播,而且mod_musicindex可以自动将当前文件夹下的 "cover.jpg"作为专辑的页面生成在点播的HTML页面中。我不想极度痛苦的进入每个文件夹看有没有.jpg文件,有则重命名为 "cover.jpg",于是想用BASH编程实现这个目的。开始想用find -exec来实现,但是没有成功,大家有什么好主意吗?
=====================================
终于搞定,好歹能用了。下面是脚本,最麻烦的地方就是对文件名中的特殊字符的转义和正则匹配了。而且中文文件名和中文目录也没有测试(我的都是英文歌曲)。
[code]
#! /bin/bash
OLD_IFS=$IFS
IFS=$'\n'
for i in `find . -type f -name "*.jpg"`
do
echo Finding $i now....
before=`echo $i | sed -r 's/\ /\\ /g; s/\(/\\(/g; s/\)/\\)/g'`
after=`echo $before | sed -r 's/\/{1}[^\/]*.jpg$/\/cover.jpg/g'`
echo Before:
echo $before
echo After:
echo $after
if test -f $after
then
echo We already have one here, give up.....
else
echo Renaming.....
cp -f $before $after
fi
done
IFS=$OLD_IFS
[/code]
这是一条镜像帖。来源:北邮人论坛 / linux / #3734同步于 1 周前
Linux机器人发帖
一个配合apache的mod_musicindex自动重命名文件的脚本
jerrytian
1 周前镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。