如何找到特定的元数据内容并将其从图片中删除?

Howto find specifc metadata content and delete it from pictures?

我尝试在 exiftool.exe 的帮助下在我的 *.jpg 文件中找到像 "Odeon" 这样的特定元数据内容,然后从文件中删除这个特定的标签。

我无法通过命令

找到"Odeon"
exiftool -if "$keywords =~ /Odeon/" .

我知道它在那里,对于这个例子,内容存储在标签 "Location" 中。

谁能告诉我,方法
a) 找到内容,无论在哪里都会存放在一个*.jpg
里面 b) 从这个文件中准确删除这个找到的标签(不备份文件)?

您的命令不起作用的原因是您只检查了关键字标签。位置是一个不同的标签,您可以在那里查看该信息。

遗憾的是,Exiftool 无法仅列出具有匹配数据的标签。您可以通过另一个命令行程序如 Find(因为您使用的是 Windows)或 Grep(其他平台)来传输输出。在这种情况下,您的命令行将如下所示:
exiftool -g1 -a -s FileOrDir | Find "Odeon"
这将列出所有包含您的信息的标签。

找到标签后,您可以在没有备份文件的情况下使用此命令将其删除,将 TAG 替换为标签的名称:
exiftool -overwrite_original -TAG= FileOrDir
请注意,如果您指定目录,此命令将从所有文件中删除该标记。如果您想要更具选择性并且标签仅包含文本 "Odeon",那么您可以使用此命令。请注意,此命令区分大小写。它不会删除 "oDeON" 或其他变体:
exiftool -overwrite_original -TAG-="Odeon" FileOrDir
如果您想删除包含 "Odeon" 的某个标记作为较长字符串的一部分并且不区分大小写,那么您可以添加 -if 选项。
exiftool -overwrite_original -if "$TAG=~/odeon/i" -TAG= FileOrDir

最后,还有使用 -api "Filter=…" 选项的霰弹枪方法。这需要 10.05 或更高版本。这个命令:
exiftool -overwrite_original -api "Filter=s/odeon//gi" -tagsfromfile @ -all:all FileOrDir
将从文件中的所有标签中删除 "odeon"(不区分大小写)。它不会删除标签,如果 odeon 是较长字符串的一部分,则字符串的其余部分将保留。例如,如果 Location 等于 "Odeon",它将变为空字符串。如果描述是 "This is Odeon",它将变成 "This is "。 "Filter=" 之后的部分是 perl regex 替换,您可以通过查看 regex 进一步完善它。