Búsqueda de patrones en documentos PDF desde terminal en Debian

por | abril 17, 2015

Vaya por delante que voy a obviar todo lo que implique interfaces gráficas y me voy a centrar en la terminal. Si contamos con entorno de escritorio basta con abrir el PDF en cuestión y buscar el patrón con software como Adobe Acrobat Reader, Evince (Gnome) u Okular (KDE), por mencionar los primeros de los que suelo echar mano en ocasiones.

Por una parte tenemos pdfgrep, de fácil instalación en Debian y derivadas como Ubuntu:

apt-get install pdfgrep

Una vez instalado su uso es bastante sencillo. Con las opciones más básicas podemos obtener las ocurrencias del patrón así como las líneas en las que aparece en el documento PDF:

pdfgrep patrón documento.pdf

Podemos buscar además en varios documentos. Para ello es interesante que utilizemos la opción -H que nos imprime en pantalla en qué documento y la opción -n que nos dice en qué localización (página) de los mismos sale el patrón que estamos buscando:

pdfgrep -Hn patrón documento1.pdf documento2.pdf

Por ejemplo, buscando “clustering” en dos documentos que tengo llamados “adminguide.pdf” y “jboss5.pdf”:

pdfgrep -Hn clustering adminguide.pdf jboss5.pdf
Resultado de búsqueda de patrón con pdfgrep

Resultado de búsqueda de patrón con pdfgrep

Otra opción sencilla que suelo utilizar es pdftotext, utilidad que se encuentra en el paquete poppler-utils que tendremos que haber instalado previamente. Básicamente convierte un fichero PDF a modo texto y después con un pipe podemos pasarle un grep para buscar patrones:

pdftotext documento.pdf - | grep 'patrón'

Posiblemente haya más maneras, pero en Debian que es el sistema que más he utilizado estas dos me parecen de las más simples y productivas de utilizar en terminal.