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 :

Extraire du texte


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 7
    Par défaut Extraire du texte
    Bonjour j'ai un texte de cette forme :

    La Jambe de Frida ik987 Inspirée par l'artiste-peintre Mexicaine Frida Kahlo, La Jambe de Frida voit le jour en
    2007. Cependant, ce sera à la fin de l'année 2009 que le groupe goûtera au plaisir de la scène, et
    notamment sur celle du Jardin de Verre en janvier 2010. Cette date marquera un point de lancement
    majeur dans l'histoire du groupe.
    Loudblast fr543
    Perfecto bn889
    Toxic Waste bb654 C'est confirmé !!! Les TOXIC entre en studio fin février 2012 pour enregistrer 3 nouveaux
    titres. Ils finiront sur un Maxi 45T vinyl avec le groupe de Punk-Rock LE REPARATEUR !
    Bull Terrier re453
    R Stoner az332
    Et en faite je voudrais capturer le texte qu'il y a après un code de la forme : ik987
    et qui ce termine par un "." ou "!" ou encore "?"

    J'ai essayé sans réussir pour l'instant j'ai ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -A$nbLignesAAfficher ik987 text.txt| sed 1s/'^.*\(\([a-z]\{2\}\)\([0-9]\)\{3\}\)'//
    Merci pour votre aide.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Il y a des retours à la ligne intempestifs dans ton texte, c'est normal ou pas ?

    Si j'ai bien saisi ta demande, dans ton exemple il faudrait retourner :
    ik987 Inspirée par l'artiste-peintre Mexicaine Frida Kahlo, La Jambe de Frida voit le jour en
    2007
    exact ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 7
    Par défaut
    Non en fait je fait un grep sur le fichier d'une expression reguliere, par exemple (ik987):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -A$nbLignesAAfficher ik987 text.txt
    je voudrai avoir le paragraphe sur l'artiste qui correspond a ce code (en l’occurrence: La Jambe de Frida) :

    Ce qui doit me donner :

    Inspirée par l'artiste-peintre Mexicaine Frida Kahlo, La Jambe de Frida voit le jour en
    2007. Cependant, ce sera à la fin de l'année 2009 que le groupe goûtera au plaisir de la scène, et
    notamment sur celle du Jardin de Verre en janvier 2010. Cette date marquera un point de lancement
    majeur dans l'histoire du groupe.
    Autre exemple, un grep avec "bb654" doit retourner :

    C'est confirmé !!! Les TOXIC entre en studio fin février 2012 pour enregistrer 3 nouveaux
    titres. Ils finiront sur un Maxi 45T vinyl avec le groupe de Punk-Rock LE REPARATEUR !
    Voila merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'ai pensé à ça qui marche avec ton exemple mais j'ai du mal à cerner si cela correspond vraiment à ce que tu veux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep ik987 text.txt | sed "s/.*ik987 \(.*\)[\?\.\!].*/\1/"
    Chaque paragraphe est-il toujours sur une seule ligne?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 7
    Par défaut
    non justement il se peut qu'il soit sur une ligne ou 3 ou 5 etc....
    et il peuvent se terminer par un "." ou "!" ou encore "?"

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Labyad Voir le message
    non justement il se peut qu'il soit sur une ligne ou 3 ou 5 etc....
    et il peuvent se terminer par un "." ou "!" ou encore "?"
    Un petit cours sur le sed:
    [\?\.\!] = 1 caractère qui correspond soit à "." , "!" ou "?". Le "\" est la pour désactiver leur fonction de base
    \(.*\) = .* est une chaine de caractère quelconque la plus longue possible. les slash et parenthèse sont la pour stocker le résultat dans \1 (tu peux en mettre d'autres après elle seront stocker dans \2 etc ...) qu'on pourra utiliser dans la partie remplacement de sed.

    Comme sed est gourmand, le 1er ".*" contiendra des "." , "!" et "?" tant qu'il en reste un plus loin.

    Tu utilisais un grep donc j'avais supposé que ce n'était que sur une ligne. C'est que le grep retourne en fait
    Le sed est dur à utiliser s'il y a plusieurs lignes à prendre en compte.

  7. #7
    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 Labyad Voir le message
    Bonjour j'ai un texte de cette forme :



    Et en faite je voudrais capturer le texte qu'il y a après un code de la forme : ik987
    et qui ce termine par un "." ou "!" ou encore "?"

    J'ai essayé sans réussir pour l'instant j'ai ceci:



    merci pour votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ sed '/ik987/,/[\.\?\!]/ !d; s/\([\.\?\!]\).*/\1/' t                  
    La Jambe de Frida ik987 Inspirée par l'artiste-peintre Mexicaine Frida Kahlo, La Jambe de Frida voit le jour en
    2007?
    $

    en fait c'est le /truc/,/machin/ qui selectionne le paragraphe à traiter, et ensuite suffit de substituer ce qui suit la ponctuation par rien pour éliminer les débuts ou fin de lignes d'autres phrases qui pourraient s'y trouver...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    $ vi t
    La Jambe de Frida ik987 Inspirée par l'artiste-peintre Mexicaine 
    Frida Kahlo, La Jambe de Frida voit le jour en
    2007? Cependant, ce sera à la fin de l'année 2009 que le groupe goûtera au plaisir de la scène, et
    notamment sur celle du Jardin de Verre en janvier 2010. Cette 
    date marquera un point de lancement
    majeur dans l'histoire du groupe.
    Loudblast fr543
    Perfecto bn889
    Toxic Waste bb654 C'est confirmé !!! Les TOXIC entre en studio fin février 2012 pour enregistrer 3 nouveaux
    titres. Ils finiront sur un Maxi 45T vinyl avec le groupe de Punk-Rock LE REPARATEUR !
    Bull Terrier re453
    R Stoner az332 
     
    $ sed '/ik987/,/[\.\?\!]/ !d; s/\([\.\?\!]\).*/\1/' t  
    La Jambe de Frida ik987 Inspirée par l'artiste-peintre Mexicaine 
    Frida Kahlo, La Jambe de Frida voit le jour en
    2007?
    $
    j'oubliais de tester avec des retours à la lignes en milieu de phrase mais c'est ok aussi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FPDF] Extraire le texte d'un fichier PDF
    Par brune38 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 13/10/2009, 10h26
  2. Réponses: 3
    Dernier message: 21/05/2008, 18h24
  3. [COM] Extraire le texte d'un fichier "word" (.doc) avec
    Par ptikiwi dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 09/06/2006, 17h06
  4. EXTRAIRE DU TEXTE
    Par chekibperl dans le forum Langage
    Réponses: 5
    Dernier message: 21/10/2005, 18h23
  5. Extraire du texte et réafficher la suite
    Par freud dans le forum ASP
    Réponses: 4
    Dernier message: 20/06/2005, 09h06

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