我总是使用“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
要解决这个问题,您应该首先使用pdftotext
UTF-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