我有几本电子书,它们并不总是以书名命名的。是否可以使用bash命令读取pdf的第一页(并执行一个琐碎的grep等)并相应地重命名文件?
谢谢
-a
发布于 2014-07-08 14:50:22
波普尔图书馆提供了一组命令行工具,用于从PDF文件中提取文本和元数据。
要提取元数据,可以使用pdfinfo
例如
:~> pdfinfo ProAdminGuide.pdf 2>/dev/null | \
grep Title: | sed 's/Title:[ ]*//'输出
Professional Administrator’s Guide有时PDF文件不包含完整的元数据。在这种情况下,您可以尝试运气从标题页的文本中提取标题。要提取标题页的文本,可以使用pdftotext
:~> pdftotext ProAdminGuide.pdf - | head -3输出
A division of
Professional Administrator’s Guide, published by无论如何,首先需要检查的是,在自动重命名它们之前,您可以从pdf文件中提取标题。
for book in *.pdf ; do
title=$(pdfinfo "$book" 2>/dev/null | grep Title: | sed 's/Title:[ ]*//')
[[ "$title" ]] || continue
mv "$book" "${title}.pdf"
done编辑:在评论中添加了查尔斯·达菲的一个很好的成语,以防万一
https://stackoverflow.com/questions/24634419
复制相似问题