linux批量修改文件名
我现在需要一个shell脚本来批量修改文件名,具体需求如下:在指定的目录下存在大量的文件(假设是down目录,现在需要修改的大概有6000个左右),文件名样例为AG000...
我现在需要一个shell脚本来批量修改文件名,具体需求如下: 在指定的目录下存在大量的文件(假设是down目录,现在需要修改的大概有6000个左右),文件名样例为AG000134010100774444.RPT,现在我要把某个时间段内(如20100101-20100115这个时间段内产生的文件)的文件名改成这种形式AG0001340101007744440000.RPT,也就是所有文件名后面增加4个0。必须要用一个shell脚本来完成。望网上的高手尽快给个答复,因为明天一大早就要用到这个,所以特别急
展开
1个回答
2013-06-17
展开全部
#!/bin/bash
####################################
#wrote by dywer, Beijing 01/21/2010
####################################
file_path='/var/down' #文件路径,结尾无杠
EXT='RPT' #欲改名的文件的扩展名
# 时间格式 [[CC]YY]MMDDhhmm[.ss]
touch -t 201001010000 /tmp/FROM.TAG # 开始时间
touch -t 201001021632 /tmp/TO.TAG # 结束时间
#
for FULL_NAME in `find $file_path/*.$EXT \
-newer /tmp/FROM.TAG -and ! -newer /tmp/TO.TAG`
do
OLD_NAME=${FULL_NAME%.$EXT}
NEW_NAME="${OLD_NAME}0000" #这是你要加的四个零
#NEW_NAME=`echo $FULL_NAME |sed 's#\(^[^.]*\)\..*$#\10000#'` # 另种方法,仅作参考
echo rename "$OLD_NAME.$EXT" to "$NEW_NAME.$EXT"
mv "$OLD_NAME.$EXT" "$NEW_NAME.$EXT"
done
#
/bin/rm /tmp/FROM.TAG
/bin/rm /tmp/TO.TAG
#--------------------------------
RHEL5已经测试过了,怎么执行脚本相信你一定了解,呵呵,我不多说了
####################################
#wrote by dywer, Beijing 01/21/2010
####################################
file_path='/var/down' #文件路径,结尾无杠
EXT='RPT' #欲改名的文件的扩展名
# 时间格式 [[CC]YY]MMDDhhmm[.ss]
touch -t 201001010000 /tmp/FROM.TAG # 开始时间
touch -t 201001021632 /tmp/TO.TAG # 结束时间
#
for FULL_NAME in `find $file_path/*.$EXT \
-newer /tmp/FROM.TAG -and ! -newer /tmp/TO.TAG`
do
OLD_NAME=${FULL_NAME%.$EXT}
NEW_NAME="${OLD_NAME}0000" #这是你要加的四个零
#NEW_NAME=`echo $FULL_NAME |sed 's#\(^[^.]*\)\..*$#\10000#'` # 另种方法,仅作参考
echo rename "$OLD_NAME.$EXT" to "$NEW_NAME.$EXT"
mv "$OLD_NAME.$EXT" "$NEW_NAME.$EXT"
done
#
/bin/rm /tmp/FROM.TAG
/bin/rm /tmp/TO.TAG
#--------------------------------
RHEL5已经测试过了,怎么执行脚本相信你一定了解,呵呵,我不多说了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |