使用Exiftool或PDFtk从文件名写入PDF元数据

德鲁

我有成千上万个以以下格式命名的PDF文件

Author Year Title of the book

前两个空格是相关的:它们在作者,年份和标题之间进行了分隔。标题可以包含多个空格。我正在寻找一个脚本来将作者写到PDF中author meta字段中;标题的标题,年份的元数据。Exiftool似乎是我研究过的所有工具中最有前途的。

你们能帮我吗?

吉勒斯“别再邪恶了”

一些EXIF操纵工具具有基于EXIF数据的重命名文件的内置方法,但我不知道一种方法可以反过来进行。因此,让外壳使用文件名的正确部分来调用程序。这是一个仅处理一个文件的脚本(将名称作为脚本的唯一参数传递)。

#!/bin/sh
title=${1##*/}
author=${title%% *}; title=${title#* }
year=${title%% *}; title=${title#* }
exiftool -Author="$author" -Title="$title" -CreateDate="$year" "$1"

说明:我使用参数扩展构造来执行一些基本的字符串处理:将基本名称(在last后面/)放入title;中。将零件放在第一个空间author并从中取出title; 重复一年。

要处理目录中的所有文件,请将该代码放入循环中。

#!/bin/sh
for filename in *\ *\ *.pdf; do
  title=${filename##*/}
  author=${title%% *}; title=${title#* }
  year=${title%% *}; title=${title#* }
  exiftool -Author="$author" -Title="$title" -CreateDate="$year" "$filename"
done

要递归处理目录及其子目录中的所有文件,请使用find

find /path/to/top/directory -name '* * *.pdf' -type f -exec sh -c '
  for filename do
    …
  done
' _ {} +

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章