zoukankan      html  css  js  c++  java
  • 用正则表达式批量重命名

    最近拍了一些照片,开始有意识地上传到PPBC中国图像库保存。PPBC有自动识别的功能,即文件名中包含植物拉丁文名或中文名的情况下,系统可以自动鉴定为相应的物种。这就经常需要对图片重命名,我一般随手写个.bat文件,用dos的rename命令搞一下,非常便捷高效。但人老了总是很糊涂,一是经常记不住相应的命令,像今天建了个txt文件写好了命令,却忘了可执行文件的后缀是啥,改了啥.exe .cmd,真丢人;二是正则匹配经常翻车,下面重点记录下正则表达式的匹配情况。

    D:photo2020326观光木手机 目录下有一批文件,格式是这样的:

    IMG_20200326_153346.jpg

    IMG_20200326_153346.jpg 这是华为手机的自动命名方式,IMG开头加上日期,再加上一串6位的数字,其中前两位还是保持不变的。

    我的本意是想在文件名后面加上“_观光木”,于是写了以下命令:

    rename IMG_20200326_15*.jpg IMG_20200326_15*_观光木.jpg

    结果文件被命名成这样了:

    IMG_20200326_153346.jpg_观光木.jpg

    把所有的都匹配上了,超吓人的有木有?

    改成这样只好去好好研究一下正则表达式,然后想办法改回来:

    rename IMG_20200326_15[0-9]{4}.jpg_观光木.jpg IMG_20200326_15[0-9]{4}_观光木.jpg

    我用在线检测工具测试过,这样是可以匹配到的,但却无法执行后续的重命名操作。

    为什么?难道是命令太复杂了?改了一种写法:

    rename IMG_20200326_15????.jpg_观光木.jpg IMG_20200326_15????_观光木.jpg

    它就好了。这是什么原理我还搞不明白,姑且先记录之。

  • 相关阅读:
    Mac 生成public_key
    OmniGraffler软件和激活码
    Maven将本地项目打包后引入本地另一个项目
    spring boot 项目启动无法访问,排查
    服务端推送
    使用IDEA进行commit合并(折叠)
    将map转为Object,支持 Date/Boolean
    mysql 删除同样记录只保留一条
    Springboot文件上传限制
    Springboot 上传文件
  • 原文地址:https://www.cnblogs.com/wildorchid/p/12582587.html
Copyright © 2011-2022 走看看