我想使用 ExifTool 批量写入以前保存在文本文件中的元数据。
假设我有一个包含以下 JPEG 文件的目录:
001.jpg 002.jpg 003.jpg 004.jpg 005.jpg
然后我创建文件
metadata.txt
,其中包含后跟冒号的文件名,然后我将其分发给同事,他将使用所需的元数据填充它——在本例中为逗号分隔的 IPTC 关键字。完成后文件如下所示:001.jpg: Keyword, Keyword, Keyword
002.jpg: Keyword, Keyword, Keyword
003.jpg: Keyword, Keyword, Keyword
004.jpg: Keyword, Keyword, Keyword
005.jpg: Keyword, Keyword, Keyword
我将如何将此文件提供给 ExifTool 并确保将正确的关键字保存到正确的文件中?如果有帮助,我也愿意更改文件的结构,例如将其格式化为 CSV、JSON 或 YAML。
最佳答案
如果可以把格式改成CSV文件,那么exiftool可以直接用 -csv
option读取.
您必须以这种方式重新格式化它。第一行必须在文件名上方有“SourceFile”的标题,在关键字上方有“Keywords”。如果文件名不包含文件的路径,则必须从与文件相同的目录中运行命令。整个关键字字符串需要用引号括起来,这样它们就不会被视为单独的列。结果如下所示:
SourceFile,Keywords
001.jpg,"KeywordA, KeywordB, KeywordC"
002.jpg,"KeywordD, KeywordE, KeywordF"
003.jpg,"KeywordG, KeywordH, KeywordI"
004.jpg,"KeywordJ, KeywordK, KeywordL"
005.jpg,"KeywordM, KeywordN, KeywordO"
那时,您的命令将是
exiftool -csv=/path/to/file.csv -sep ", " /path/to/files
-sep
option需要确保将关键字视为单独的关键字而不是单个长关键字。与循环遍历文件内容并为每一行运行 exiftool 的脚本相比,这具有优势。 Exiftool 最大的性能影响在于它的启动和循环运行会非常慢,尤其是在大量文件上(参见 Common Mistake #3)。
见 ExifTool FAQ #26有关从 csv 文件读取的更多详细信息。
关于shell - Exiftool:将文本文件中的元数据批量写入 JPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60392676/