假设我在LABEL字段中有5000个带有以下元数据的图像。
0001 ELEPHANT
0002 ELEPHANT
0003 ELEPHANT
...
4999 ELEPHANT
5000 ELEPHANT
我希望将格式更改为:
ELEPHANT-0001
ELEPHANT-0002
ELEPHANT-0003
…
ELEPHANT-4999
ELEPHANT-5000
换句话说,我想对多个图像的元数据字段执行以下操作:
#### NAME - > NAME - ####
从我可以收集的信息中可以有两种方法
有什么建议吗?
答案 0 :(得分:0)
扩展我在exiftool forums中给出的答案。
基本命令是
exiftool "-LABEL<${LABEL;s/(\d{4}) (.*)/$2-$1/}" <FileOrDir>
您基本上想要将标记复制到同一个标记中,并进行一些修改。复制标记的选项是小于(或大于)符号<
或>
。一个常见的错误是使用等号=
,用于为标记分配静态值。
要对标记进行修改,需要使用“高级格式化”选项,这实际上是一些内联的perl代码。在此示例中,标记被视为perl字符串,并使用正则表达式替换。它匹配并捕获前四位数(\d{4})
,匹配空格(但不捕获它),然后匹配并捕获标记(.*)
的其余部分。这两个捕获分别分配给变量$1
和$2
。在替换替换$2-$1
的一半中,两个捕获与它们之间的连字符相反。
要充分利用高级格式化,一些基本的perl和正则表达式知识是有帮助的。
一旦确定该命令,就可以添加-overwrite_original
来禁止生成备份文件,并-r
递归到子目录中。