访问所有子目录并从每个pdf中提取第一页

时间:2014-09-21 13:04:07

标签: bash pdftk

我有一些电子书的文件夹,我想从每本书中提取第一页。有超过200本书,所以手动这样做,这是一个很大的痛苦在后面,将是非常耗时。

我有一个命令可以完成单个文件

的工作
pdftk TehInput.pdf cat 1 output cover_TehInput.pdf

如何将此包装成一个访问所有内容的脚本,并将名称分配给cover_wtv-original-name-is.pdf之类的输出?所有输出文件可能在任何地方,例如在启动脚本的目录中或原始文件附近。

2 个答案:

答案 0 :(得分:1)

您希望使用find命令。类似的东西:

find . -iname '*.pdf' -exec pdftk '{}' cat 1 output '{}'.cover.pdf ';'

这将从当前目录(.)向下找到所有PDF,然后执行

pdftk filename.pdf cat 1 output filename.pdf.cover.pdf

就可以了。这是传递给pdftk的整个路径,因此您最终将封面PDF与原始文件放在同一目录中。 (如果需要,你可以做一些事情来摆脱.pdf.cover.pdf扩展。)

答案 1 :(得分:0)

如果您在文件名中不使用空格或换行符:

find . -iname '*.pdf' -printf "%h %f\n" | sed -E 's|(.*) (.*)|echo pdftk \1/\2 cat 1 output \1/cover_\2|' | sh

如果输出正常,请删除“echo”。