分页: 1 / 1

有关重命名

发表于 : 2009-11-10 11:29
onelynx
求一脚本:
将文件 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
有更简单的吗?

Re: 有关重命名

发表于 : 2009-11-10 11:40
JiangHui
不要妄图怀疑神
不要妄图超越神

Re: 有关重命名

发表于 : 2009-11-10 11:42
tenzu
神啊,宽恕LZ吧 :em70

Re: 有关重命名

发表于 : 2009-11-10 11:49
bones7456
$ 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
改改就行了。。。

Re: 有关重命名

发表于 : 2009-11-10 12:20
onelynx
谢谢骨头 :em11