【问题标题】:Rename file based on regex filename match根据正则表达式文件名匹配重命名文件
【发布时间】:2018-10-23 04:54:04
【问题描述】:

我使用hazel 自动重命名文件并将它们移动到文件夹中 - 但是 - 它使用了错误的日期。 我使用 shell 脚本和 exif 工具修复了文件上的日期,但现在需要再次重命名文件。

文件可以是多种类型,例如

2014-10-29 - _DSF5234.JPG
2014-10-29 - _DSF5234.DNG
2014-10-29 - _DSF5234.PSD

我需要从每个文件的文件名中删除"2014-10-29 - " 部分。理想情况下,它是一个直接处理一个文件的脚本,我将它嵌入到 hazel 操作中。

找到这个正则表达式([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))

谁能给我一个提示?

【问题讨论】:

  • 请阅读“如何提问”并在文本中使用正确的code formating

标签: regex extract rename file-rename strip


【解决方案1】:

您可以获取您提供的示例正则表达式,通过在左括号后添加 ?: 将捕获组更改为非捕获组,添加 - 以匹配您要返回/删除的其他字符,然后添加对文件名的其余部分进行正向前瞻。

^([12]\d{3}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01]) - )(?=.+\.\w+$)

https://regex101.com/r/N5XweP/1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 2016-08-22
    • 2020-08-13
    相关资源
    最近更新 更多