#1 Le 22/02/2017, à 17:09
- wallace27
script permettant recherche à l'intérieur des pdf
Bonjour,
Existe-t-il une commande que je peux taper dans le terminal et qui me permettrait d'effectuer une recherche selon les mots contenus à l'intérieur d'un document pdf ou d'un document texte quelconque ?
Merci pour votre aide.
Dernière modification par wallace27 (Le 22/02/2017, à 17:09)
Hors ligne
#2 Le 22/02/2017, à 17:25
- serged
Re : script permettant recherche à l'intérieur des pdf
Pour les fichiers texte, la commande grep est faite pour ça...
Pour les fichiers pdf tu peux utiliser pdftotext. Par exemple :
pdftotext toto.pdf - |grep motif
cherchera "motif" dans le texte de toto.pdf...
Bien sûr il y a des options dans grep...
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#3 Le 22/02/2017, à 17:34
- wallace27
Re : script permettant recherche à l'intérieur des pdf
Ok parfait merci, mais si je ne sais pas dans quel fichier pdf se trouve le mot que je recherche est-ce qu'il existe une solution, une commande à taper ?
Dernière modification par wallace27 (Le 22/02/2017, à 17:34)
Hors ligne
#4 Le 22/02/2017, à 18:16
- charrier63
Re : script permettant recherche à l'intérieur des pdf
je vais peut-être dire une bêtise, mais * c'est un "joker"
donc si tu mets tout les pdf concerné dans un dossier, et ensuite dans ce dossier, tu tapes :
pdftotext *.pdf - |grep motif
au lieu de chercher dans toto.pdf, ca cherchera dans tout les fichiers avec l'extension .pdf qui seront dans le dossier ou tu fais ta recherche
Dernière modification par charrier63 (Le 22/02/2017, à 18:17)
Hors ligne
#5 Le 22/02/2017, à 18:40
- wallace27
Re : script permettant recherche à l'intérieur des pdf
Non malheureusement ça ne fonctionne pas
Hors ligne
#6 Le 22/02/2017, à 23:24
- DonutMan75
Re : script permettant recherche à l'intérieur des pdf
Je suggère (à lancer dans le bon répertoire) :
$ find . -name '*.pdf' -exec pdftotext {} | grep motif \;
Ou encore :
$ find . -name '*.pdf' | xargs grep motif
Ca donne de bons résultats ?
Donut.
Hors ligne
#7 Le 23/02/2017, à 10:09
- Sciensous
Re : script permettant recherche à l'intérieur des pdf
mouais, attention quand même : si le pdf est un scan pdftotext ne suffit pas non?
il faudrait piper avec ocr non ?
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#8 Le 23/02/2017, à 16:52
- LeoMajor
Re : script permettant recherche à l'intérieur des pdf
bonjour,
faire un test/condition
-pdfimages pour savoir si le pdf est compatible image -> tesseract-ocr -> texte
-pdftotext pour savoir si le pdf est compatible texte
Hors ligne
#9 Le 23/02/2017, à 19:20
- Hizoka
Re : script permettant recherche à l'intérieur des pdf
Salut,
juste pour info, si tu utilise de la reconnaissance de texte au format image, ça va énormément alourdir et ralentir ta recherche...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#10 Le 24/02/2017, à 22:20
- wallace27
Re : script permettant recherche à l'intérieur des pdf
Je suggère (à lancer dans le bon répertoire) :
$ find . -name '*.pdf' -exec pdftotext {} | grep motif \;
Ou encore :
$ find . -name '*.pdf' | xargs grep motif
Ca donne de bons résultats ?
Donut.
Je remplace le mot "motif" par le mot que je recherche on est bien d'accord ? Malheureusement aucune des proposition ne fonctionne.
Hors ligne
#11 Le 24/02/2017, à 22:33
- DonutMan75
Re : script permettant recherche à l'intérieur des pdf
Bonsoir,
effectivement, il faut remplacer motif par ce que tu recherches (idéalement entouré de guillemets)
Il y a une erreur dans la deuxième commande, ça devrait être (je crois, pas sûr à 100%....) :
$ find . -name '*.pdf' | xargs pdftotext | grep motif
Je n'ai jamais utilisé pdftotext donc je ne peux pas tester chez moi... Qu'est ce que ça renvoie comme msg d'erreur ?
Donut
Dernière modification par DonutMan75 (Le 24/02/2017, à 22:34)
Hors ligne
#12 Le 25/02/2017, à 00:10
- wallace27
Re : script permettant recherche à l'intérieur des pdf
aucune erreur, ça retourne à la ligne.
Ce que je trouve bluffant moi c'est que MacOs fait tout cela directement depuis la recherche spotlight.
Hors ligne
#13 Le 25/02/2017, à 10:20
- Hizoka
Re : script permettant recherche à l'intérieur des pdf
Peux tu mettre à disposition l'un de tes fichiers ?
Sinon après un test, la commande :
pdftotext "gravure en commande.pdf" | grep "linux"
ne fonctionne pas car elle se contente de créer un fichier txt de "traduction"
il faut lancer :
pdftotext "gravure en commande.pdf" - | grep "linux"
math-linux.com
Cdrecord-Clone 2.01 (i686-pc-linux-gnu) Copyright (C) 1995-2004
le man indique que pour envoyer le texte dans stdout il faut ajouter -
Dernière modification par Hizoka (Le 25/02/2017, à 10:20)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#14 Le 25/02/2017, à 11:57
- wallace27
Re : script permettant recherche à l'intérieur des pdf
De toute manière mon but est de retrouver un fichier dont je ne connais plus le nom et dont je ne sais plus dans quel dossier il se trouve simplement en tapant une partie du texte qu'il contient et ce quel que soit son format. C'est ce que l'on peut faire avec Spotlight.
Si je dois d'abord me positionner dans le dossier en question, voire pire, préciser le nom du fichier pdf en question, alors la fonctionnalité de recherche dont nous parlons ne m'est d'aucune utilité.
Hors ligne
#15 Le 25/02/2017, à 14:23
- Hizoka
Re : script permettant recherche à l'intérieur des pdf
tu cumules les commandes :
find "DossierParent" -name '*.pdf' -exec pdftotext {} - \; | grep "TonMot"
mais pour le coup tu n'as pas le nom du fichier.
Et pour aller plus loin, je ferais :
TERME="Linux"
DOSSIER="${HOME}"
while read File
do
Infos=$(pdftotext "${File}" - | grep "${TERME}")
[[ ${Infos} ]] && echo -e "=======> Fichier : ${File} <=======\n${Infos}\n"
done < <(find "${DOSSIER}" -name '*.pdf')
et tu peux pousser en mettant de la couleur par exemple.
Dernière modification par Hizoka (Le 25/02/2017, à 14:23)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#16 Le 23/12/2017, à 19:29
- jhc
Re : script permettant recherche à l'intérieur des pdf
Bonjour,
Pour chercher dans le fichier : pdfgrep qui peut être installé avec apt install pdfgrep
pdfgrep --help pour le mode d'emploi
On peut chercher par exemple combien de fois on trouve un mot dans un document :
pdfgrep -p présentation 2009\ -\ Eyrolles\ -\ Reussir\ une\ presentation...pdf
ce qui va donner :
6:3
8:1
10:4
...
Hors ligne