星期五, 五月 04, 2007

一个不成功的改名方法

原文见:shell脚本批量更改文件扩展名(unix/linux/bsd) | Tinyfool的开发日记(blog)

Tinyfool自己改写的“for i in *.htm; do mv $i ${i%%\.*}.html; done”这段脚本的确可以批量改名,但是显然匹配用的不大好。因为%%\.*匹配了所有.*扩展名,如“a.b.htm”中的“b.htm”都可以被匹配,而非.htm结尾的也会被骚扰一遍。如果用这个脚本来改名,结果是:

a.htm => a.html
a.b.htm => a.html
a.b => mv报错,因为参数个数出问题了。


还是正则表达式比较好用。或者用rename(如果有的话):

rename .htm .html *.htm

没有评论: