IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Recherche contenu fichier PDF [Débutant(e)]


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2003
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 270
    Par défaut Recherche contenu fichier PDF
    Bonjour,

    je decouvre la commande grep qui permet de faire des recherches de fichiers en fonction de leur contenu. Mais la recherche ignore les fichiers pdf. Apres avoir un peu surfe, j'ai vu que l'utilisation de pdftotext pouvait resoudre le probleme.

    question:
    quel serait dans ce cas la syntaxe a utiliser ?
    par ex: liste des fichiers du rep qui contiennent la chaine 'aaaaaa'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep aaaaaa ./* pdftotext ?
    ou qqchose du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls | pdftotext | grep netlink
    N'y a t-il pas plus simple que de passer par pdftotext ?

    Ma distrib: Debian 3.1 (Sarge)

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    pdf est un format particulier qui est plus proche d'un langage que d'un bloc de donnée il contient des elements binaires et des elements textes à la fois.

    le grepper est donc à priori une mauvaise idée...d'ou l'utilité de n'extraire que le bloc textuel avant de le grepper....

    tu dois donc generer le fichier texte avant de le grepper

    à la main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pdftotext toto.pdf titi.txt 
    grep "aaaaa" titi.txt
    mais pdftotext generant un fichier de sortie tu ne peux pas le piper avec une autre commande avec les options par defauts.

    si pdftotext à une option qui permet de l'afficher sans cree de fichier texte alors seulement tu peux le piper par un grep...

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2003
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 270
    Par défaut
    Merci pour ta reponse.

    Je comprends la "complexite" technique d'une recherche sur des fichiers pdf. Mais etant donne l'omnipresence de ce format, est-ce qu'il n'existe pas dans le monde Linux un outil qui permet de masquer cette complexite ? Et donc de pouvoir faire une recherche dans une arborescence sans se soucier de la particularite du format pdf ?

    En gros, qu'est ce qui permet de se rapprocher de l'ergonomie de la fonction de recherche de fichier de Windows XP (qui permet de lister les fichiers d'une arborescence qui contiennent le mot 'xxxx' , qu'ils soient pdf, doc, txt ou autre) ?

    Merci

  4. #4
    Membre chevronné Avatar de Tchetch
    Inscrit en
    Mars 2002
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 401
    Par défaut
    Il y a un outil qui a été mis en place sur le projet Gnome qui va dans ce sens. Malheureusement je ne connais plus le nom, mais il faut chercher par là-bas !

    Sinon dans le pire des cas, tu peux toujours piper pdftotext même s'il n'a pas d'option prévue pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ mkfifo FIFO
    $ pdftotext file.pdf FIFO &
    $ cat FIFO | grep blabla
    $ rm FIFO
    À partir de là, construire un script devrait être pas trop compliqué ... Mais je n'ai de solution "clé en main" là tout de suite !

  5. #5
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Citation Envoyé par Tchetch
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ mkfifo FIFO
    $ pdftotext file.pdf FIFO &
    $ cat FIFO | grep blabla
    $ rm FIFO
    ta solution construit le fichier de sortie donc c'est pas un pipage réél le pipage se fait sur le cat et pas sur pdftotext
    tu ne fais qu'ajouter une couche supplémentaire et faire perdre du temps cpu et d'autres ressources au traitement par rapport à laisser fiinir pdftotext et grepper le fichier de sortie... ok tu vas dire on s'en tape avec la puissance des machines modernes* .... mais c'est pas propre/optimisé....
    en plus sur un fichier bien gras** ça pourrait s'averer plus long pour obtenir le résultat final par contre sur un petit fichier c'est négligeable.


    *et tu as bien raison
    **fichier de grande taille

  6. #6
    Membre chevronné Avatar de Tchetch
    Inscrit en
    Mars 2002
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 401
    Par défaut
    Ouais, mais c'est déjà mieux que rien. Avec un petit script pour enrober tout ça et le faire sur une arborescence complète et le tour est joué !

    Sinon oui, il s'agit là bien d'un tube (pipe), mais un tube nommé. Les tubes se travail comme des fichiers. J'aurais pu faire :
    On gagne le temps consommé par 'cat' !

Discussions similaires

  1. [JSP/SERVLET] Moteur de recherche dans fichiers PDF
    Par crewstyle dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 27/04/2007, 16h18
  2. [PDF] PHP et recherche dans le contenu d'un fichier PDF
    Par bass17 dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 16/02/2007, 11h54
  3. Lire le contenu d'un fichier PDF
    Par skywaukers dans le forum Delphi
    Réponses: 6
    Dernier message: 18/07/2006, 12h01
  4. [FPDF] Lire le contenu d'un fichier PDF, possible ?
    Par Mister Nono dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/11/2005, 18h47
  5. [FPDF] Recherche chaine caractères dans fichier pdf
    Par licorne dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/10/2005, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo