使用bash来阅读pdf内容

时间:2014-07-08 14:27:48

标签: bash

我有几本电子书并不总是以书名命名。是否可以使用bash命令来阅读pdf的第一页(并执行一个简单的grep等)并相应地重命名该文件?

感谢

-a

1 个答案:

答案 0 :(得分:3)

Poppler Library提供了一组命令行工具,用于从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

编辑在评论中添加了一个由Charles Duffy建议的好习惯用作预防措施