当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : jpg改目录名.bash,直接加到右键菜单方便
帖子发表于 : 2006-04-29 23:55 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
放到nautilus-script里面,右键操作是很方便的。ln -s到/usr/bin里面也可以。终端下使用就方便点。

代码:
#!/bin/bash

#整理当前目录下的jpg图片名字,按照目录名字排序。
dir=`pwd`;dir=${dir##\/*\/}
num=0

for i in *.jpg *.JPG
do
#符合规则的文件不需要修改
   if [ `expr match "$i" "${dir}-[0-9]*.[jpg|JPG]$"` != 0 ]; then
      tmp=${i#"$dir"-}
      tmp=${tmp%".jpg"}
#      echo ${tmp} ----------------------
      if [ "$tmp" -le "$num" ]; then
      echo $i 符合规则,不修改。当前排序已到 $num。
      continue
      fi
   fi
   result="$dir"-$num.jpg
#防止覆盖已有文件
   while [ -e "$result" ]
   do
      ((num++))
      result="$dir"-$num.jpg
   done
#   i=`echo $i | sed 's/\ /\\\ /g'`
#   result=`echo $result | sed 's/\ /\\\ /g'`
#    | sed 's/\(/\\\(/g' | sed 's/\)/\\\)/g'
#实际操作改名了。
   echo $i '->' $result
   mv "$i" "$result"
   ((num++))
done



如果普通的文件名操作,就用rename算了。起码支持sed的那种s和y操作。其他的操作就麻烦些,都是perlexp的写法。Mastering Regular Expressions.pdf里面有perlexp的说明。复杂的。


_________________
● 鸣学


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译