Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/02/2017, à 18: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, à 18:09)

Hors ligne

#2 Le 22/02/2017, à 18: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, à 18: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, à 18:34)

Hors ligne

#4 Le 22/02/2017, à 19: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, à 19:17)

Hors ligne

#5 Le 22/02/2017, à 19:40

wallace27

Re : script permettant recherche à l'intérieur des pdf

Non malheureusement ça ne fonctionne pas

Hors ligne

#6 Le 23/02/2017, à 00: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, à 11: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, à 17: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, à 20: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, à 23:20

wallace27

Re : script permettant recherche à l'intérieur des pdf

DonutMan75 a écrit :

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, à 23: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, à 23:34)

Hors ligne

#12 Le 25/02/2017, à 01: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, à 11: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, à 11:20)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#14 Le 25/02/2017, à 12: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, à 15: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, à 15:23)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#16 Le 23/12/2017, à 20: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