저는 항상 "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
이 문제를 해결하려면 먼저 UTF-8 형식을 사용하여 합자를 찾아야 합니다 pdftotext
. 예를 들어 다음을 실행했습니다.
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