Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

Alternance

La première des fonctionnalités d'expressions régulières étendues dont nous allons parler s'appelle alternance, qui est la fonction qui permet une correspondance parmi un ensemble d'expressions. Tout comme une expression entre crochets permet à un seul caractère de correspondre à partir d'un ensemble de caractères spécifiés, l'alternance permet des correspondances à partir d'un ensemble de chaînes ou d'autres expressions régulières.

Pour démontrer, nous utiliserons grep en conjonction avec echo. Tout d'abord, essayons une simple correspondance de chaîne :



[moi@linuxbox ~]$ écho "AAA" | grep AAA

AAA

[moi@linuxbox ~]$ écho "BBB" | grep AAA

[moi@linuxbox ~]$

[moi@linuxbox ~]$ écho "AAA" | grep AAA

AAA

[moi@linuxbox ~]$ écho "BBB" | grep AAA

[moi@linuxbox ~]$


Un exemple assez simple, dans lequel nous canalisons la sortie de echo développement grep et voir les résultats. Lorsqu'une correspondance se produit, nous la voyons imprimée ; lorsqu'aucune correspondance ne se produit, nous ne voyons aucun résultat.

Nous allons maintenant ajouter une alternance, signifiée par le métacaractère de barre verticale :



[moi@linuxbox ~]$ écho "AAA" | grep -E 'AAA|BBB'

AAA

[moi@linuxbox ~]$ écho "BBB" | grep -E 'AAA|BBB'

BBB

[moi@linuxbox ~]$ echo "CCC" | grep -E 'AAA|BBB'

[moi@linuxbox ~]$

[moi@linuxbox ~]$ écho "AAA" | grep -E 'AAA|BBB'

AAA

[moi@linuxbox ~]$ écho "BBB" | grep -E 'AAA|BBB'

BBB

[moi@linuxbox ~]$ echo "CCC" | grep -E 'AAA|BBB'

[moi@linuxbox ~]$


Ici, nous voyons l'expression régulière 'AAA|BBB', ce qui signifie « correspond à la chaîne AAA ou la chaîne BBB. " Notez que puisqu'il s'agit d'une fonctionnalité étendue, nous avons ajouté le -E Option de grep (bien que nous aurions pu simplement utiliser le égrep programme à la place), et nous avons mis l'expression régulière entre guillemets pour empêcher le shell d'interpréter le métacaractère de la barre verticale comme un opérateur pipe. L'alternance ne se limite pas à deux choix :



[moi@linuxbox ~]$ écho "AAA" | grep -E 'AAA|BBB|CCC'

AAA

[moi@linuxbox ~]$ écho "AAA" | grep -E 'AAA|BBB|CCC'

AAA


Pour combiner l'alternance avec d'autres éléments d'expression régulière, nous pouvons utiliser () pour séparer l'alternance :



[moi@linuxbox ~]$ grep -Eh '^(bz|gz|zip)' dirlist*.txt

[moi@linuxbox ~]$ grep -Eh '^(bz|gz|zip)' dirlist*.txt


Cette expression correspondra aux noms de fichiers de nos listes commençant par « bz », « gz » ou « zip ». Si nous avions omis les parenthèses, le sens de cette expression régulière :



[moi@linuxbox ~]$ grep -Eh '^bz|gz|zip' dirlist*.txt

[moi@linuxbox ~]$ grep -Eh '^bz|gz|zip' dirlist*.txt


change pour correspondre à tout nom de fichier commençant par « bz » ou contient "gz" ou contient "Zip *: français".


Meilleur système d'exploitation Cloud Computing chez OnWorks :