Re: [ssfr] Expressions regulieres avec grep

[ Thread Index | Date Index | More debianworld.org/shellscript-fr Archives ]


Voici une solution à base de negative-look-ahead ( http://www.perlmonks.org/?node_id=518444 )

sputnick@FreAkyLab:~$ cat /tmp/l
[1] Buffers processed: #ERROR: Unable to load decompression library - [-1879048074]

sputnick@FreAkyLab:~$ cat /tmp/ll
[1] Buffers processed:  #ERROR: azerty

sputnick@FreAkyLab:~$ grep -P 'ERROR:\s+(?!Unable to load)' /tmp/l

sputnick@FreAkyLab:~|ERROR:1|$ grep -P 'ERROR:\s+(?!Unable to load)' /tmp/ll
[1] Buffers processed:  #ERROR: azerty

Les look-around sont très pratiques !

++sputnick;

On 31/08/2011 18:06, Stephane Ascoet wrote:
Bonsoir, je fais des heures supplementaires a cause de ce truc qui me rend
dingue.
J'ai un fichier qui contient, entre autres: "[1] Buffers processed:  #ERROR:
Unable to load decompression library - [-1879048074]."

Je veux que mon script detecte le ERROR qui s'y trouve, mais a condition qu'il
n'y ait pas la phrase "Unable to load decompression library" derriere.
Du coup, j'essaye:
grep -q -E 'ERROR.*(Unable to load decompression library){,0}' fichier

Je me suis cree un fichier avec la phrase complete, l'autre avec juste le
ERROR. Il faudrait donc que grep prenne la phrase du second, mais pas du
premier. Et bien rien a faire, il la prend soit dans les deux, soit dans
aucun. J'ai essaye de mettre "^" devant la paranthese, de la faire suivre de
"{0}", "{0,0}"... je n'obtiens jamais le resultat attendu.






Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/