批量修改照片名称的shell脚本

代码这种经常完善的东西,其实是不太适合使用博客来发布的。

以下是一个批量修改照片名称的shell脚本:

事情是这样的,虽然手机拍的照片文件名是按照日期来确定的,但是是这种形式的 IMG_mmddYY_HHiiss.jpg。(字母的含义借助了php的表示法)

脚本的目的是将其修改成这种形式: IMG_YYmmdd_HHiiss.jpg

#!/system/bin/sh
#
#This shell to rename a or some jpg files
#some jpg file name are like this : IMG_200315_135037.jpg
#when we sort them,the sort are not arange by date
#so this shell will change its name to IMG_20150320_135037.jpg
#
# Usage: jpgrename dirname
#

preYear=20
maxdepth=2

alias find='busybox find'
alias cut='busybox cut'

if [ -d $1 ]; then
filenames=`find $1 -maxdepth $maxdepth -name "IMG_??????_??????.jpg" -print`
elif [ -f $1 ]; then
if [ `echo $1 | cut -c 1` != '/' ]; then
filenames=./$1
fi
else
echo "No such file or directory: $1"
fi
#echo $filenames
count=0
#filearr=$(echo $filenames)
for item in $filenames
do
oldFileName=$item
item1=${item%/*}
item=${item#$item1}
item2=`echo $item | cut -c 1-5`
item3=`echo $item | cut -c 6-7`
item4=`echo $item | cut -c 8-9`
item5=`echo $item | cut -c 10-11`
item6=`echo $item | cut -c 12-`
newFileName=$item1$item2$preYear$item5$item4$item3$item6
mv $oldFileName $newFileName
#echo $oldFileName-$newFileName
#echo ll
let count++
done
echo Total rename $count files

 

posted @ 2016-01-16 15:51  张不正  阅读(637)  评论(0编辑  收藏  举报
返回顶部