Bash - Regexp

Résolu
Bonjour,

Je code actuellement un script en bash me permettant d'automatiser une tâche quotidienne et longue.
Je rencontre un problème quand je dois récupérer une valeur entre guillemets présente dans un document texte. Ce document ne contient pas uniquement cette information. C'est pourquoi j'ai pensé utiliser une regex pour récupérer la valeur.

Ma phrase unique, blabla : "valeur a récupérer".

Voilà la structure, j'ai cherché du côté de grep, sed, awk, mais rien n'y fait.

Merci de m'aider.



--

4 réponses

  1. Modérateur
    $ cat plop
    <div style="position:absolute; left:230px; top:90px; width:470px; text-align:left;  font-size:13px;"  >
            Lorem ipsum : "valeur dont je n'ai pas besoinr".
    
            Ma phrase unique, blabla : "valeur a récupérer".
    
            Une autre phrase : "valeur dont je n'ai pas besoin".
    
    
    <form action="" method="post">
    
    $ grep "Ma phrase unique, blabla" plop  | grep -o '".*"'
    "valeur a récupérer"
    
    $
    1. Modérateur
      Avec "sed" aussi ça le fait :

      $ sed -n '/Ma phrase unique, blabla/ s/.*"\([^"]*\)".*/\1/p' plop
      valeur a récupérer

      ;-))
    2. Cela fonctionne parfaitement ! Merci beaucoup
  2. Modérateur
    Salut,

    $ cat appy77
    Bonjour,
    
    Je code actuellement un script en bash me permettant d'automatiser une tâche quotidienne et longue.
    Je rencontre un problème quand je dois récupérer une valeur entre guillemets présente dans un document texte. Ce document ne contient pas uniquement cette information. C'est pourquoi j'ai pensé utiliser une regex pour récupérer la valeur.
    
    Ma phrase unique, blabla : "valeur a récupérer".
    
    Voilà la structure, j'ai cherché du côté de grep, sed, awk, mais rien n'y fait.
    
    
    Merci de m'aider.
    
    $ grep -o '".*"' appy77
    "valeur a récupérer"
    
    $

    ;-))
    1. En fait j'ai oublié de préciser que le document comporte plusieurs phrases contenant des guillemets (c'est un code source HTML). J'aimerais donc récupérer la chaine de caractères entre guillemets de la phrase qui correspond exactement.

      J'ai essayé :
      $ grep -o 'Ma phrase unique, blabla : ".*"' appy77
      Mais il ne me renvoi malheureusement rien.

      Merci pour ton aide !
      1. Modérateur
        Merci de poster un exemple extrait de ton fichier avec la chaine à extraire, sans quoi... ;-\
    2. <div style="position:absolute; left:230px; top:90px; width:470px; text-align:left;  font-size:13px;"  >
      	Lorem ipsum : "valeur dont je n'ai pas besoinr".
      	
      	Ma phrase unique, blabla : "valeur a récupérer".
      	
      	Une autre phrase : "valeur dont je n'ai pas besoin".
      					
      					
      <form action="" method="post">
      


      Effectivement, ce sera plus simple avec un exemple:P
      1. Modérateur
        Ok, mais il faudrait aussi un critère pour savoir quelle phrase il faut extraire ;-((

        Motif, numéro de ligne, etc.
      2. Il n'y a pas de numéro fixe, la seule chose qui peut différencier les phrases c'est la phrase en elle même qui elle est fixe et unique, c'est pourquoi j'avais testé précédemment :
        grep -o 'Ma phrase unique, blabla : ".*"' appy77