我有一些电子书的文件夹,我想从每本书中提取第一页。有超过200本书,所以手动这样做,这是一个很大的痛苦在后面,将是非常耗时。
我有一个命令可以完成单个文件
的工作pdftk TehInput.pdf cat 1 output cover_TehInput.pdf
如何将此包装成一个访问所有内容的脚本,并将名称分配给cover_wtv-original-name-is.pdf
之类的输出?所有输出文件可能在任何地方,例如在启动脚本的目录中或原始文件附近。
答案 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”。