Скрипт pdfgrep знаходить всі PDF файли, що містять регулярний вираз <regexp>, в каталозі <path> і всіх його підкаталогах. Малі та великі букви в регулярному виразі не розрізняються (приберіть опцію --ignore-case в grep, щоб це змінити).
Pdfgrep:
#!/bin/sh
# Usage: pdfgrep <regexp> <path>
IFS=$'\n'
for I in `find "$2" -iname '*.pdf'`; do
pdftotext -enc UTF-8 "$I" — \
| grep --quiet --ignore-case --max-count=1 --regexp="$1" \
&& echo "$I"
done
Вміст тестової директорії:
$ ls -l1h *
-rwxr--r-- 1 207 сер 5 13:55 pdfgrep
My PDFs:
загалом 14M
-rw-rw-r-- 1 8,6M чер 6 2009 Український_правопис_2007.pdf
-rw-r--r-- 1 371K сер 5 13:28 Exercise_1_slides.pdf
-rw-r--r-- 1 670K сер 5 13:28 Exercise_2_slides.pdf
-rw-r--r-- 1 567K сер 5 13:28 Exercise_3_slides.pdf
-rw-r--r-- 1 431K сер 5 13:28 Exercise_4_slides.pdf
-rw-r--r-- 1 472K сер 5 13:28 Exercise_5_slides.pdf
-rw-r--r-- 1 438K сер 5 13:28 Exercise_6_slides.pdf
-rw-r--r-- 1 387K сер 5 13:28 Exercise_7_slides.pdf
Застосування скрипту:
$ ./pdfgrep "mobile ip" .
./My PDFs/Exercise_7_slides.pdf
./My PDFs/Exercise_6_slides.pdf
$ ./pdfgrep "право.*" .
./My PDFs/Український_правопис_2007.pdf
PS: pdftotext — утиліта з пакету утиліт xpdf. В Debian xpdf-utils.