Bash - Regexp

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
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.




--
A voir également:

4 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
$ 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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Avec "sed" aussi ça le fait :

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

;-))
0
Utilisateur anonyme
 
Cela fonctionne parfaitement ! Merci beaucoup
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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"

$

;-))
0
Utilisateur anonyme
 
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 !
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Merci de poster un exemple extrait de ton fichier avec la chaine à extraire, sans quoi... ;-\
0
Utilisateur anonyme
 
<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
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Ok, mais il faudrait aussi un critère pour savoir quelle phrase il faut extraire ;-((

Motif, numéro de ligne, etc.
0
Utilisateur anonyme
 
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
0