• 用正则表达式批量重命名


    最近拍了一些照片,开始有意识地上传到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

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

  • 相关阅读:
    cgo中调用有函数指针参数的C函数
    为什么要微服务架构服务化?
    学习刘杨人像后期笔记纪要
    错误日志表设计
    通过jstack日志分析和问题排查
    【JVM】jmap命令详解----查看JVM内存使用详情
    【JVM】jstat命令详解---JVM的统计监测工具
    介绍几种常用的监控工具
    【转】Pinpoint分布式系统性能监控工具
    【转】Skywalking概述
  • 原文地址:https://www.cnblogs.com/wildorchid/p/12582587.html
Copyright © 2020-2023  润新知