有关重命名

sh/bash/dash/ksh/zsh等Shell脚本
回复
onelynx
帖子: 817
注册时间: 2008-11-13 16:03

有关重命名

#1

帖子 onelynx » 2009-11-10 11:29

求一脚本:
将文件 a.ps , a1.ps , a2.ps , ..... , a12.ps 重命名为 a01.ps , a02.ps , a03.ps , ..... , a13.ps

ee的脚本:
13:43:19-exp~/应用/脚本$● cat jpg改目录名.bash
#!/bin/bash

#整理当前目录下的jpg图片名字,按照目录名字排序。
dir=`pwd`
#[ $1 ] && dir=`dirname $1` && cd $dir;
dir=${dir##\/*\/}
#:>~/tmp
#echo $dir --- >>~/tmp
#pwd>>~/tmp
#exit 0

num=0
for i in *.jpg
do
#符合规则的文件不需要修改
if [ `expr match "$i" "${dir}-[0-9]*.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
有更简单的吗?
JiangHui
论坛版主
帖子: 21308
注册时间: 2007-08-02 20:29
系统: 窓辺とうこ

Re: 有关重命名

#2

帖子 JiangHui » 2009-11-10 11:40

不要妄图怀疑神
不要妄图超越神
头像
tenzu
论坛版主
帖子: 36924
注册时间: 2008-11-21 20:26

Re: 有关重命名

#3

帖子 tenzu » 2009-11-10 11:42

神啊,宽恕LZ吧 :em70
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

Re: 有关重命名

#4

帖子 bones7456 » 2009-11-10 11:49

$ for i in `seq 13 -1 1`;do printf "mv a%d.ps a%02d.ps\n" $((i-1)) $i;done
mv a12.ps a13.ps
mv a11.ps a12.ps
mv a10.ps a11.ps
mv a9.ps a10.ps
mv a8.ps a09.ps
mv a7.ps a08.ps
mv a6.ps a07.ps
mv a5.ps a06.ps
mv a4.ps a05.ps
mv a3.ps a04.ps
mv a2.ps a03.ps
mv a1.ps a02.ps
mv a0.ps a01.ps
改改就行了。。。
关注我的blog: ε==3
onelynx
帖子: 817
注册时间: 2008-11-13 16:03

Re: 有关重命名

#5

帖子 onelynx » 2009-11-10 12:20

谢谢骨头 :em11
回复