25 votos

¿Cómo puedo buscar un archivo PDF desde línea de comandos?

Yo estoy comprobando referencias de un libro y desea encontrar las posiciones en el cuerpo donde se hace referencia a un papel (en la lista de referencias). ¿Hay un editor de PDF que soporta búsqueda por bash y extrae el contexto de una posición? Has probado a convertir PDF a texto, pero no tuvo un buen resultado.

30voto

Mitch Puntos 54051

Usted puede utilizar xpdf-utils. xpdf es un conjunto de herramientas de Formato de Documento Portátil (PDF) archivos.

Para instalar se puede usar el Centro de Software de Ubuntu, o haciendo clic a continuación:

software-banner

También,

Pdfgrep es una herramienta para la búsqueda de texto en archivos PDF. Funciona de forma similar a `grep'.

Características:

  • búsqueda de expresiones regulares.
  • soporte para algunos de los más importantes grep opciones, incluyendo: + nombre de archivo de salida. + número de página de salida. + opcional caso de insensibilidad. + contar
    las apariciones.
  • y la característica más importante: la salida de color!

software-banner

1Fuente:Ubuntu Apps Directory

20voto

Glogomir Barczev Puntos 61

Sólo para agregar a la respuesta anterior, en particular, puede utilizar una herramienta de línea de comandos de xpdf-utils llamado pdftotext y, a continuación, buscar en el documento de texto creado por esta herramienta con grep.

Esto podría ser algo como esto:

pdftotext document.pdf - | grep -C5 -n -i "search term"

Hay más información en el manual. El único inconveniente de la pdftotext es que no nos englobamiento de transformar varios archivos al mismo tiempo. Este problema se puede superar con un pequeño script en bash:

for f in pdf_directory; do echo $f; pdftotext $f - | grep -i "search_term"; done

Si usted está teniendo problemas para crear un documento de texto de un pdf debido a que, por ejemplo, un incompatibles archivo pdf, entonces ese es otro problema.

Creo que en general, los editores de pdf no incluyen líneas de comandos porque son gráficas. Si desea utilizar bash, (o tal vez zsh!) entonces usted podría tener que utilizar una terminal de shell.

Buena suerte!

6voto

IgnitE Puntos 4601

Para buscar una expresión regular en varios archivos pdf con pdfgrep:

find /path -iname '*.pdf' -exec pdfgrep -H 'pattern' {} \;

donde ruta es la ubicación para archivos pdf.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: