Recoll est une fantastique application de recherche graphique en texte intégral pour Unix/Linux qui prend en charge des dizaines de formats différents, y compris PDF. Il peut même transmettre le numéro de page exact et le terme de recherche d'une requête à la visionneuse de documents et vous permet ainsi d'accéder directement au résultat depuis son interface graphique.
Recoll est également livré avec une interface de ligne de commande viable et une interface de navigateur Web.
Il y a pdfgrep, qui fait exactement ce que son nom l'indique.
pdfgrep -R 'a pattern to search recursively from path' /some/path
Je l'ai utilisé pour des recherches simples et cela a bien fonctionné.
(Il existe des packages dans Debian, Ubuntu et Fedora.)
Depuis la version 1.3.0, pdfgrep prend en charge la recherche récursive. Cette version est disponible dans Ubuntu depuis Ubuntu 12.10 (Quantal).
Votre distribution doit fournir un utilitaire appelé pdftotext
:
find /path -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep --with-filename --label="{}" --color "your pattern"' \;
Le "-" est nécessaire pour avoir une sortie pdftotext vers stdout, pas vers des fichiers. Le --with-filename
et --label=
les options placeront le nom du fichier dans la sortie de grep. Le --color
facultatif flag est agréable et indique à grep de sortir en utilisant des couleurs sur le terminal.
(Dans Ubuntu, pdftotext
est fourni par le package xpdf-utils
ou poppler-utils
.)
Cette méthode, utilisant pdftotext
et grep
, a un avantage sur pdfgrep
si vous souhaitez utiliser les fonctionnalités de GNU grep
ce pdfgrep
ne supporte pas. Remarque :pdfgrep-1.3.x prend en charge -C
option pour imprimer la ligne de contexte.