怎样批量重命名文件(格式相同,但文件名序号不变)

怎样批量重命名文件(格式相同,但文件名序号不变)?如:N0001-1N0001N0002N0003N0003-1,删除N字,应怎样操作如果是050105020503050... 怎样批量重命名文件(格式相同,但文件名序号不变)?如:
N0001-1 N0001 N0002 N0003 N0003-1,删除N字,应怎样操作
如果是0501 0502 0503 0504 ,删除前面的O应怎样操作
展开
 我来答
DeepThoughtBD
2010-08-02
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
#
# 本程序功能描述:
# 批量文件名重命名。
#
# 本程序的典型调用方法:
# ./BatchRename.sh absPath strOld strNew
#
# 其中:
# absPath 表示欲批量改名的文件所在文件夹的绝对路径
# strOld 表示文件名中要替换掉的字符串,可以是正则表达式
# strNew 表示文件名中要替换成的字符串,可以是正则表达式
#
# Version history:
# 2010-07-28 v1.2 Rewrite with shell parameters supporting.
# 2010-07-25 v1.0 Created by Yang Wang.
#

# For debugging purpose.
# echo $1
# echo $2
# echo $3

# 如果表示绝对路径的 $1 以 / 结尾,则去掉。再将去掉可能存在的 / 后的绝对路径赋给 absPath。
absPath=${1/%\//}

# For debugging purpose.
# echo $absPath
# exit 1

# 判断输入参数的个数是否正确
if [ $# != 3 ]; then
echo "USAGE: ./BatchRename.sh absPath strOld strNew"
echo " e.g.: G:/TrainingTools/SupportingTools/UsefulScripts/BatchRename.sh G:/Corpus/yyx/data_for_Nokia/labels_original/full/ male7000 male"
exit 1
fi

# 在循环中批量更改文件名,$i 是带有绝对路径的完整文件名。
for i in $absPath/`ls $absPath`; do

# echo $i
fileName=`basename $i`

echo "Renaming $fileName ..."
# echo $absPath/$fileName
# echo $absPath/`echo $fileName | sed "s/$2/$3/"`

mv $absPath/$fileName $absPath/`echo $fileName | sed "s/$2/$3/"`

done

echo "Done!"
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式