命令行中是否有“pdfgrep”的连字感知替代方案?

命令行中是否有“pdfgrep”的连字感知替代方案?

我总是使用“pdfgrep”从命令行搜索多个 PDF 文件的内部。但我遇到了一个问题:这个连字字符“fi”(参见https://www.compart.com/en/unicode/U+FB01)。 “fi”在“fixed”一词中,因此我无法使用 搜索术语“定点运算符” pdfgrep -iR 'fixed point operator'。但是,当我使用Foxit reader和Evince等PDF阅读器打开该文件时,“fi”被拆分为“f”和“i”,因此可以搜索。 “pdfgrep”有更可靠的替代品吗?或者“pdfgrep”中是否有任何选项关键字来扩展编码?

PDF 文件是http://direct.mit.edu/books/chapter-pdf/238450/9780262321037_can.pdf

Ubuntu 20.04,amd64,内核版本 Linux 5.6.0-1018-oem。 pdfgrep 有一个选项--unac。但如果我使用 pdfgrep 安装sudo apt-get install pdfgrep,命令--unac将报告“pdfgrep:UNAC 支持在编译时禁用!”

pdfgrep:
  Installed: 2.1.2-1build1
  Candidate: 2.1.2-1build1
  Version table:
 *** 2.1.2-1build1 500
        500 http://mirrors.huaweicloud.com/ubuntu focal/universe amd64 Packages
        100 /var/lib/dpkg/status

答案1

要解决这个问题,您应该首先使用pdftotextUTF-8 形式找出您的连字,例如我运行以下命令:

pdftotext -f 11 -l 13 ~/Mathematics/Analysis/MeasureTheory.pdf text && cat text 

并得到一行结果,如下所示

   1.6.  Infinite and σ-finite measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

然后我知道fi终端中实际上是一个响铃电话☎,但是它fi在浏览器上呈现为。

所以我继续pdfgrep

pdfgrep --page-range=11-13 fi ~/Mathematics/Analysis/MeasureTheory.pdf

最后,当然我得到了想要的结果:

   1.6.  Infinite and σ-finite measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
   2.4.  The general definition of the Lebesgue integral . . . . . . . . . . . . . . 118
   2.6.  Integration with respect to infinite measures . . . . . . . . . . . . . . . . 124
   3.5.  Infinite products of measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

相关内容