exiftool 仅处理正则表达式匹配的源文件

Posted

技术标签:

【中文标题】exiftool 仅处理正则表达式匹配的源文件【英文标题】:exiftool process only regex matched source file 【发布时间】:2017-11-19 13:37:00 【问题描述】:

我正在使用exiftool 重命名和组织从相机拍摄的照片到指定的目标目录。

如何使用正则表达式指定输入源文件名?

例子:

我有一个包含这两个文件的目录:

IMG_20160716_121830.jpg
IMG-20160716-121830-WA0004.jpg

我只想处理IMG_20160716_121830.jpg

【问题讨论】:

你能显示你的命令行吗? 其实我没有找到任何线索来了解如何从这些开始。我参考了 exiftool 命令示例和可用选项,我可以看到基于输入的框架输出和控制扩展的可能选项。 你需要正则表达式做什么?单个文件名不是模式。 好的。显示用于错误处理这两个文件的命令。 在您给出的示例中,您可以简单地检查名称是否包含下划线。 _ 就是这种模式。 【参考方案1】:

正如用户@Borodin 所提到的,在您的示例中,您只需要具有下划线的文件,而不是破折号。在这种情况下,您只需搜索带有下划线的文件。

但是,如果这是一个错字或者您需要递归(通配符不适用于 exiftool 的 -r 递归选项,请参阅 Common mistake 2 & 3),那么您可以使用 exiftool 的 -if 选项在文件名。在这种情况下,您可以添加如下内容:-if "$filename=~/IMG-\d8-\d6\.jpg/" 给你命令(如果在 Mac/linux 上,将双引号更改为单引号)。

【讨论】:

以上是关于exiftool 仅处理正则表达式匹配的源文件的主要内容,如果未能解决你的问题,请参考以下文章

文本处理三剑客,正则表达式等

如何使用模式匹配器仅获取与 Java 中正则表达式匹配的第一行?

文本处理工具之grep和正则表达式

正则表达式仅匹配美元符号、货币、小数

Linux正则表达式教程:Grep Regex示例

正则表达式匹配音频文件[关闭]