Mis à jour
Les expressions rationnelles ou régulières permettenet de reconnaître des
mots ou textes qui respectent un motif. Un motif est un ensemble de caractères définissant à quoi ressemblent les
textes souhaités. Un motif peut être composé de motifs et d’atome. Un atome est un motif non décomposable. Dans le domaine des expressions rationnelles, les atomes sont: Dans une expression rationnelle, tout atome peut être “quantifié” ce qui
signifie que, dans les mots reconnus, l’atome peut apparaître un certain
nombre fois selon le quantifieur. Les quantifieurs possibles sont: L’ensemble de mots reconnus par une expression rationnelle est son langage. Dans le monde Recherche de ligne avec Exécuter la ligne de commande suivante: Un caractère pour tous Dans les caractères imprimables, certains ont une signification
spéciale. Exécuter: Chercher une ligne de commande permettant d’afficher tout les événements
de 11:00 à 11:59 Le début et fin de ligne Parmi les caractères séciaux, nous avons Exécuter: Puis: Les classes de caractères Exécuter: Ici, à l’intérieur des En vous inspirant de l’exemple précédent, faire afficher les lignes du
En utilisant Lire les Concepts
+, ?, *, |, [, ],
{, }, (, ), et ` `( et )[ et ]
? l’atome précédent peut apparaître 0 ou 1 fois dans les mots reconnus+ l’atome précédent doit apparaître au minimum une fois (pas de
maximum)* l’atome précédent peut apparaître 0, 1 ou plusieurs fois.{n,m} l’atome précédent doit apparaître au moins n fois et au maximum m fois. n et m sont facultatif et, s’ils sont omis sont remplacé par:
n par 0m par l’infiniPremière mise en pratique
Unix, les outils de reporting et de recherche de texte
s’appuient beaucoup sur les expressions rationnelles.
egrep (ou grep -E)$ getent passwd \ egrep root
. permet de reconnaître n’importe quel caractère.# egrep '14:..:..' /var/log/syslog
^ qui permet de représenter
le début de ligne s’il est au début de l’eyperssion et $ représente la
fin de ligne.# egrep ^r..t /etc/passwd
# egrep 'sh$' /etc/passwd
# egrep '1[123]:..:' /var/log/syslog
[ et ], les caractères consécuvifs peuvent
exprimés sous la forme [1-9].syslog qui correspondent de 10:00 à 14:59awk, faites afficher le nom des processus qui ont généré
des événements entre 11:00 et 12:59 ainsi que l’horaire des événements.Références
man de grep et awk`, en particulier les sections décrivant les
expressions rationnelles (Regular Expressions)