누군가가 이 문제를 해결하는 데 도움을 줄 수 있기를 바랍니다.
PDF 파일(실제로는 PDF 파일 폴더) 내에서 키워드 검색을 수행하고 키워드가 발견된 파일 이름을 포함한 모든 페이지를 반환해야 하는 작은 스크립트를 찾고 있습니다.
다음 스크립트를 찾았습니다 (여기https://ubuntuforums.org/showthread.php?t=1368062):
#!/bin/bash
[ "$*" ] || { echo "You forgot a search string!" ; exit 1 ; }
found=1
for file in ./src/*.pdf ; do
[ "$file" = '*.pdf' ] && echo "No PDF files found!" && exit 1
pages=$(pdfinfo "$file" | awk '/Pages:/ { print $NF }')
for ((i=1 ; i<=$pages ; i++)) ; do
match=$(pdftotext -q -f $i -l $i "$file" - | grep -m 1 "$*")
[ "$match" ] && echo "Page $i in $file" && found=0
done
done
[ "$found" -ne 0 ] && echo "No search string matches found"
대부분의 조회수를 반환했지만 Adobe Acrobat Reader 및 Mac Preview의 검색 기능은 더 많은 일치 항목을 반환했습니다. 문제가 무엇인지 아는 사람이 있나요?
내 생각에는 검색 키워드 앞이나 뒤의 문자에서 실패하는 것 같지만 그것은 단지 추측일 뿐입니다.
페이지당 조회수까지 포함하면 정말 완벽할 것 같아요!
답변1
나는 사용할 것이다pdfgrep
:
pdfgrep -p "your search string" src/*.pdf
각 페이지의 개수와 함께 일치하는 페이지 번호가 출력됩니다.
이는 누락된 일치 항목을 처리하지 못할 수 있습니다. 그 이유는 PDF 구성 방식(특히 텍스트 결합 방식)에 따라 다릅니다.