Sed, rechercher le premier argument

Résolu
gunbol Messages postés 52 Statut Membre -  
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,

J'ai une log, avec le format suivant:


blablabla(HOST=ce_que_je_cherche)blablabla(HOST=ce_que_je_ne_veux_pas)blablabla

J'arrive avec un sed à ramener le pattern ce_que_je_ne_veux_pas, mais je n'arrive pas à récupérer ce-que-je-veux)

Ma commande est la suivante:

echo "blablabla(HOST=ce_que_je_cherche)blablabla(HOST=ce_que_je_ne_veux_pas)blablabl" | sed 's/.*HOST=\([^)]*\).*/\1/g'

Pouvez vous m'aider ?

Merci d'avance.

Gunther

1 réponse

lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

Ton 1er .* avale tout jusqu'au 2ème HOST

Je n'ai pas testé (donc j'oblige le moteur de trouver un 2ème HOST).
Tu as une paranthèse fermante qui fini ce que tu cherche, il faut l'utiliser pour delimiter. Je ne sais pas commetn se comporte sed
sed 's/.*HOST=\([^)]*\)).*HOST.*/\1/g' 
1
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

C'est nickel, à part le "g" qui ne sert à rien ;-))
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570 > jipicy Messages postés 41342 Statut Modérateur
 
Salut et merci ;-)

Ben, pour le g, j'ai fait un copier/coller ;-)))
0
jipicy Messages postés 41342 Statut Modérateur 4 896 > lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité
 
En tant que bon Perlien, c'est de bon aloi ;-))
0