Les Allergies
Alimentaires
Posez votre question Signaler

Bash - Regexp [Résolu]

appy77 70Messages postés 22 décembre 2007Date d'inscription 4 novembre 2010Dernière intervention - Dernière réponse le 4 nov. 2010 à 18:59
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.
--
Lire la suite 

Bash - Regexp »

Suggestions
9 réponses
Réponse
+1
moins plus
$ 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"

$
jipicy- 4 nov. 2010 à 18:54
Avec "sed" aussi ça le fait :

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

;-))
appy77- 4 nov. 2010 à 18:59
Cela fonctionne parfaitement ! Merci beaucoup
Ajouter un commentaire
Réponse
+0
moins plus
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"

$

;-))
Ajouter un commentaire
Réponse
+0
moins plus
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 !
jipicy- 4 nov. 2010 à 18:31
Merci de poster un exemple extrait de ton fichier avec la chaine à extraire, sans quoi... ;-\
Ajouter un commentaire
Réponse
+0
moins plus
<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
jipicy- 4 nov. 2010 à 18:47
Ok, mais il faudrait aussi un critère pour savoir quelle phrase il faut extraire ;-((

Motif, numéro de ligne, etc.
appy77- 4 nov. 2010 à 18:49
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
Ajouter un commentaire
Ce document intitulé « Bash - Regexp » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?