04-Expressions Regulieres
04-Expressions Regulieres
04-Expressions Regulieres
régulières
Laboratoire Linux
Les expressions régulières
Objectifs de ce module
En suivant ce module vous allez :
Voir comment utiliser les
expressions régulières.
Découvrir Grep.
Découvrir Sed.
Les expressions régulières
Plan du module
Voici les parties que nous allons aborder:
Plan de la partie
Voici les chapitres que nous allons aborder :
Introduction
Correspondance et substitution
Motifs
Ensembles
Quantificateurs
Début et fin de chaînes
Les expressions régulières
Introduction
Les expressions régulières :
Correspondance et substitution
La syntaxe de référence (PERL) :
Correspondance :
/regexp/
Substitution :
s/regexp1/regexp2/
Les expressions régulières
Correspondance et substitution
Processus :
Définition de
l’expression
régulière
Remplacement
de l’expression Définition de la
dans la chaîne
chaîne
par une nouvelle
Recherche de
l’expression
régulière dans
Retourne la
la chaîne
position de
l’expression dans
la chaîne
Les expressions régulières
Motifs
Dans une expressions régulière :
Chaque caractère vaut pour lui-
même :
/a/ recconaîtra 'Marine' mais pas
‘Arriver'
Motifs
Dans une expressions régulière, il y a certains codes
spéciaux usuels :
\n Saut de ligne
\r Retour chariot
\t Tabulation
\f Saut de page
\e Echappement
Les expressions régulières
Motifs
Exemple d’utilisation des codes spéciaux :
s/\r//
m/Enset \n Rabat/
Correspond à
Enset
Rabat
Et non Enset Rabat
Les expressions régulières
Ensembles
Les regroupements :
Ensembles
Les intervalles :
Ensembles
L’alternative :
Ensembles
Quelques précisions :
Ensembles
Dans une expressions régulière, il y a des ensembles
prédéfinis :
\w Alphanumérique : [0-9a-zA-Z_]
\s Un espacement : [ \n\t\r\f]
Quantificateurs
Les quantificateurs :
Possibilité de regrouper plusieurs caractères en un
motif grâce au parenthèses :
/ab*/ matchera une chaîne contenant 'a' suivi de 0
ou plusieurs 'b'.
/(ab)*/ matchera une chaîne contenant 'ab' 0 ou
plusieurs fois.
Quantificateurs
Dans une expressions régulière, on peut utiliser des
quantificateurs standards :
* 0 fois ou plus
+ 1 fois ou plus
? 0 ou 1 fois
Pause-réflexion
Pause-réflexion
Quelles sont les 2 grandes fonctions des expressions
régulières ?
Pattern matching
Corrélation
Substitution
Grep
Grep
Plan de la partie
Voici les chapitres que nous allons aborder :
Rappel
Utilisation
Exemple
Grep
La commande Grep
Grep permet de faire des recherches dans un fichier.
Syntaxe générale :
Options :
-i Insensible à la casse
-v Inverse l’affichage
Grep
Exemple
Afficher les commentaires d’un fichier :
grep ‘[a-z_][a-z0-9_]*’
Grep
Pause-réflexion
Sed
Stream Editor
Sed
Plan de la partie
Voici les chapitres que nous allons aborder :
La commande Sed
Afficher et supprimer
Remplacer
Ajouter et enregistrer
Scripts Sed
Echappement
Sed
La commande Sed
Sed permet de manipuler du texte.
Différentes fonctions :
Ajouter
Supprimer
Remplacer
Ajouter
Afficher
…
Sed
La commande Sed
Fonctionnement :
Données
Données
SED éditées
Actions
Sed
La commande Sed
Syntaxe générale :
Options :
-f Utiliser un script
Afficher et supprimer
Syntaxe générale d’une commande (pattern matching) :
/regexp/action
Exemples :
Action Description
d Supprimer
p Afficher
Sed
Afficher et supprimer
Exemples :
Remplacer
Syntaxe générale d’une commande (substitution) :
s/regexp_old/regexp_new/action
Exemples :
Ajouter et enregistrer
Ajout :
s/regexp/& ajout/
Enregistrement :
s/regexp_old/regexp_new/w fichier
Exemple :
Scripts Sed
Syntaxe générale :
Exemple :
Remplacer les occurences de "emacs" par "vi".
Supprimer la première occurrence de "Gates", etc …
#! /usr/bin/sed –nf
s/emacs/vi/g
/[Gg][Aa][Tt][Ee][Ss]/d
Sed
Echappement
Le caractère '\'
Permet d’échapper les
caractères spéciaux.
Exemple :
s/\/usr\/src\/linux/\$SRC_DIR/g
Les séparateurs :
Pause-réflexion
Pause-réflexion
Relier les actions à leurs descriptions :
afficher d
g p
ajout w
enregistrement &ajout
Les expressions régulières
Résumé du module
Les
expressions
régulières
Sed
Grep
Les expressions régulières
Linux
**ListeMCU
de modules de cours
connexes.
www.dunod.com
**URL pour obtenir l’ouvrage.