Linux中国

如何使用 pdfgrep 从终端搜索 PDF 文件

诸如 grepack-grep 之类的命令行工具对于搜索匹配指定正则表达式的纯文本非常有用。但是你有没有试过使用这些工具在 PDF 中搜索?不要这么做!由于这些工具无法读取PDF文件,因此你不会得到任何结果。它们只能读取纯文本文件。

顾名思义,pdfgrep 是一个可以在不打开文件的情况下搜索 PDF 中的文本的小命令行程序。它非常快速 —— 比几乎所有 PDF 浏览器提供的搜索更快。greppdfgrep 的最大区别在于 pdfgrep 对页进行操作,而 grep 对行操作。grep 如果在一行上找到多个匹配项,它也会多次打印单行。让我们看看如何使用该工具。

安装

对于 Ubuntu 和其他基于 Ubuntu 的 Linux 发行版来说,这非常简单:

sudo apt install pdfgrep

对于其他发行版,只要在包管理器里输入 “pdfgrep” 查找,它就应该能够安装它。万一你想浏览其代码,你也可以查看项目的 GitLab 页面

测试运行

现在你已经安装了这个工具,让我们去测试一下。pdfgrep 命令采用以下格式:

pdfgrep [OPTION...] PATTERN [FILE...]
  • OPTION 是一个额外的属性列表,给出诸如 -i--ignore-case 这样的命令,这两者都会忽略匹配正则中的大小写。
  • PATTERN 是一个扩展正则表达式。
  • FILE 如果它在相同的工作目录就是文件的名称,或文件的路径。

我对 Python 3.6 官方文档运行该命令。下图是结果。

![pdfgrep search](/data/attachment/album/201801/16/132005kwnwdjgo6d76wigi.png "pdfgrep search")

红色高亮显示所有遇到单词 “queue” 的地方。在命令中加入 -i 选项将会匹配单词 “Queue”。请记住,当加入 -i 时,大小写并不重要。

其它

pdfgrep 有相当多的有趣的选项。不过,我只会在这里介绍几个。

  • -c 或者 --count:这会抑制匹配的正常输出。它只显示在文件中遇到该单词的次数,而不是显示匹配的长输出。
  • -p 或者 --page-count:这个选项打印页面上匹配的页码和页面上的该匹配模式出现次数。
  • -m 或者 --max-count [number]:指定匹配的最大数目。这意味着当达到匹配次数时,该命令停止读取文件。

所支持的选项的完整列表可以在 man 页面或者 pdfgrep 在线文档中找到。如果你在批量处理一些文件,不要忘记,pdfgrep 可以同时搜索多个文件。可以通过更改 GREP_COLORS 环境变量来更改默认的匹配高亮颜色。

总结

下一次你想在 PDF 中搜索一些东西。请考虑使用 pdfgrep。该工具会派上用场,并且节省你的时间。

via: https://www.maketecheasier.com/search-pdf-files-pdfgrep/

作者:Bruno Edoh 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


本文转载来自 Linux 中国: https://github.com/Linux-CN/archive

对这篇文章感觉如何?

太棒了
0
不错
0
爱死了
0
不太好
0
感觉很糟
0
雨落清风。心向阳

    You may also like

    Leave a reply

    您的邮箱地址不会被公开。 必填项已用 * 标注

    这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

    More in:Linux中国

    Linux中国

    捐赠 Let's Encrypt,共建安全的互联网

    随着 Mozilla、苹果和谷歌对沃通和 StartCom 这两家 CA 公司处罚落定,很多使用这两家 CA 所签发证书的网站纷纷寻求新的证书签发商。有一个非盈利组织可以为大家提供了免费、可靠和安全的 SSL 证书服务,这就是 Let's Encrypt 项目。现在,它需要您的帮助
    Linux中国

    关于Linux防火墙iptables的面试问答

    Nishita Agarwal是Tecmint的用户,她将分享关于她刚刚经历的一家公司(印度的一家私人公司Pune)的面试经验。在面试中她被问及许多不同的问题,但她是iptables方面的专家,因此她想分享这些关于iptables的问题和相应的答案给那些以后可能会进行相关面试的人。 所有的问题和相应的答案都基于Nishita Agarwal的记忆并经过了重写。 嗨,朋友!我叫Nishita Agarwal。我已经取得了理学学士学位,我的专业集中在UNIX和它的变种(BSD,Linux)。它们一直深深的吸引着我。我在存储方面有1年多的经验。我正在寻求职业上的变化,并将供职于印度的P
    Linux中国

    Lets Encrypt 已被所有主流浏览器所信任

    旨在让每个网站都能使用 HTTPS 加密的非赢利组织 Lets Encrypt 已经得了 IdenTrust的交叉签名,这意味着其证书现在已经可以被所有主流的浏览器所信任。从这个里程碑事件开始,访问者访问使用了Lets Encrypt 证书的网站不再需要特别配置就可以得到 HTTPS 安全保护了。 Lets Encrypt 的两个中级证书 ...