jpg改目录名.bash,直接加到右键菜单方便

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

jpg改目录名.bash,直接加到右键菜单方便

#1

帖子 eexpress » 2006-04-29 23:55

放到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的说明。复杂的。
● 鸣学
回复

回到 “Shell脚本”