una texto por pdfgrep palabras palabra files dentro contenido consola comando coincidencias buscar archivos archivo linux pdf full-text-search grep debian

linux - texto - pdfgrep



¿Cómo buscar contenidos de múltiples archivos pdf? (12)

¿Cómo puedo buscar el contenido de los archivos PDF en un directorio / subdirectorio? Estoy buscando algunas herramientas de línea de comandos. Parece que grep no puede buscar archivos PDF.


Existe una herramienta grep de recursos comunes de código abierto que busca en archivos PDF pero también otros recursos como contenido anidado en archivos, tablas de bases de datos, metadatos de imágenes, dependencias de archivos POM y recursos web, y combinaciones de estos, incluida la búsqueda recursiva.

La descripción completa en la pestaña Archivos cubre prácticamente todo lo que admite la herramienta.

Desarrollé crgrep como una herramienta de código abierto.


Hay pdfgrep , que hace exactamente lo que su nombre sugiere.

pdfgrep -R ''a pattern to search recursively from path'' /some/path

Lo he usado para búsquedas simples y funcionó bien.

(Hay paquetes en Debian, Ubuntu y Fedora).

Desde la versión 1.3.0 pdfgrep soporta búsqueda recursiva. Esta versión está disponible en Ubuntu desde Ubuntu 12.10 (Quantal).


Hice este pequeño script destructivo . Diviértete con eso.

function pdfsearch() { find . -iname ''*.pdf'' | while read filename do #echo -e "/033[34;1m// === PDF Document:/033[33;1m $filename/033[0m" pdftotext -q -enc ASCII7 "$filename" "$filename."; grep -s -H --color=always -i $1 "$filename." # remove it! rm -f "$filename." done }


Me gusta la respuesta de @ sjr, sin embargo, prefiero xargs vs -exec. Encuentro xargs más versátil. Por ejemplo, con -P podemos aprovechar varias CPU cuando sea conveniente hacerlo.

find . -name ''*.pdf'' | xargs -P 5 -I % pdftotext % - | grep --with-filename --label="{}" --color "pattern"


Mi versión actual de pdfgrep (1.3.0) permite lo siguiente:

pdfgrep -HiR ''pattern'' /path

Al hacer pdfgrep --help :

  • H: Imprime el nombre del archivo para cada coincidencia.
  • i: Ignorar distinciones de casos.
  • R: Buscar directorios recursivamente.

Funciona bien en mi Ubuntu.


Necesita algunas herramientas como pdf2text para convertir primero su pdf en un archivo de texto y luego buscar dentro del texto. (Probablemente te perderás alguna información o símbolos).

Si está utilizando un lenguaje de programación, probablemente haya bibliotecas pdf escritas para este propósito. por ejemplo, http://search.cpan.org/dist/CAM-PDF/ para Perl


Primero convierta todos sus archivos pdf a archivos de texto:

for file in *.pdf;do pdftotext "$file"; done

Luego use grep como de costumbre. Esto es especialmente bueno ya que es rápido cuando tiene varias consultas y muchos archivos PDF.


Si desea ver los nombres de archivos con pdftotext use el siguiente comando:

find . -name ''*.pdf'' -exec echo {} /; -exec pdftotext {} - /; | grep "pattern/|pdf"


Su distribución debe proporcionar una utilidad llamada pdftotext :

find /path -name ''*.pdf'' -exec sh -c ''pdftotext "{}" - | grep --with-filename --label="{}" --color "your pattern"'' /;

El "-" es necesario para tener salida de pdftotext a stdout, no a archivos. Las opciones --with-filename y --label= pondrán el nombre del archivo en la salida de grep. El indicador opcional --color es agradable y le dice a grep que emita usando colores en el terminal.

(En Ubuntu, pdftotext es proporcionado por el paquete xpdf-utils o poppler-utils ).

Este método, utilizando pdftotext y grep , tiene una ventaja sobre pdfgrep si desea usar las características de GNU grep que pdfgrep no admite. Nota : pdfgrep-1.3.x admite la opción -C para imprimir la línea de contexto.


Tuve el mismo problema y, por lo tanto, escribí una secuencia de comandos que busca en todos los archivos pdf en la carpeta especificada una cadena e imprime los archivos PDF que coinciden con la cadena de consulta.

Tal vez esto te sea útil.

Puedes descargarlo here


intente usar ''acroread'' en un script simple como el de arriba


Recoll es una fantástica aplicación de búsqueda GUI de texto completo para Unix / Linux que admite docenas de formatos diferentes, incluido PDF. Incluso puede pasar el número de página exacto y el término de búsqueda de una consulta al visor de documentos y, por lo tanto, le permite saltar al resultado directamente desde su GUI.

Recoll también viene con una interfaz de línea de comandos viable y una interfaz de navegador web .