|
Les expressions régulières Les expresions régulières caractérisent uniquement des chaines de caractères et pas des noms de fichiers. Elles sont utilisées avec les commandes ed, vi,ex,sed,awk. s/RE/chaine de remplacement/ (ou RE caracterise une expression régulière) Lorsqu'on recherche une chaine de caractères à l'aide d'une expression régulière, la chaine renvoyée est la chaine la plus grande correspondant avec l'expression. Pour banaliser un caractère, il faut utiliser "\" Le point " . " Caractérise n'importe quel caractère. Rappel : pour pouvoir caractériser le point ".", il faut le banaliser à l'aide d'un backslash "\."
chaine de départ asdeuy...dur commande s/.../---/ resultat ---euy...dur
Les crochets " [ ] " [abc] a, b ou c [a-z] une lettre minuscule [0-57] 0, 1, 2, 3, 4, 5 ou 7 [a-d5-8X-Z] a, b, c, d, 5, 6, 7, 8, X, Y ou Z [0-5-] 0, 1, 2, 3, 4, 5 ou - [^0-9] pas un chiffre [^a-zA-Z] pas une lettre [012^] 0, 1, 2 ou ^
Débuts ("^") et fin ("$") de lignes ^ : caractérise le début de ligne (Attention ne pas confondre ^ et [^ ]). $ : caractérise la fin de ligne.
/^abc/ ligne commencant par abc /abc$/ ligne finissant par abc /^$/ ligne vide
L'étoile " * " Attention, l'utilisation de * est un peu particulière dans les expressions regulières : Elle signifie de 0 Ã n fois le caractère la précédant
a* 0 ou n fois a aa* au moins un a .* n'importe quelle chaine de caractères (y compris la chaine vide)
chaine de départ aabbabbaab commande s/[ab]*/x/ s/a.*b/y/ s/a.*bb/z/ resultat x y zaab
/^[0-9][0-9]*$/ ligne qui ne contient que des chiffres
Isoler des sous chaines " \( " et " \) " Pour isoler des sous chaines. On peut reutiliser les sous chaines ainsi trouvées grace à \1, \2 ..
chaine de départ ejkf fed 158e fd commande s/.*\([0-9][0-9]*\).*/ resultat = \1/ resultat resultat = 158
|