Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:hypathie:tutos:sed-et-les-expressions-rationnelles [27/07/2014 14:09] Hypathie [La substitution] |
utilisateurs:hypathie:tutos:sed-et-les-expressions-rationnelles [09/08/2014 07:30] (Version actuelle) Hypathie [Sed et les regexp simples] |
||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
=====Contexte d'utilisation des ER ===== | =====Contexte d'utilisation des ER ===== | ||
+ | On utilise les expressions rationnelles simples ou étendues (//ERE//) avec sed | ||
- | >Avec sed les ER s'utilisent lorsqu'on veut modifier un fichier texte. | + | * pour les adressages par l'encadrement, [[utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste?&#adressage-simple|simple]] et [[utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste?&#adressage-double|double]]. |
- | >Il s'agit de matcher un ou des éléments d'un fichier texte par une REGEXP et de remplacer, ce ou ces éléments ciblés du texte, par autres choses ou rien. | + | * avec la commande s : |
- | >Ou encore, elles servent à ajouter, à un endroit précisé par la regexp, un ou des éléments au texte. | + | * ''s/motif/substitut/[options_de_s]'' où "motif" peut être une //ER// ou une //ERE// |
+ | * qui utilise aussi des ER pour ses adressages. | ||
+ | |||
+ | Dans ce qui suit, seule [[utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste?&#la-commande-s|la commande s]] servira pour illustrer d'exemples l'utilisation des //ER// et //ERE//.\\ | ||
+ | Pour l'utilisation globale de sed voir [[utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste|sed par la méthode structuraliste]]. | ||
====Les caractères utilisés pour créer des regexp avec sed ==== | ====Les caractères utilisés pour créer des regexp avec sed ==== | ||
Ligne 27: | Ligne 32: | ||
-> __**utilisation des expressions régulières de basiques**__,\\ c'est-à-dire, celles qui utilisent les métacaractères simples (POSIX) qui sont en communs à tous les programmes utilisant les expressions régulières.\\ En voici un rappel : | -> __**utilisation des expressions régulières de basiques**__,\\ c'est-à-dire, celles qui utilisent les métacaractères simples (POSIX) qui sont en communs à tous les programmes utilisant les expressions régulières.\\ En voici un rappel : | ||
- | **''.''** ; **''*''**, **''^''**, **''$''**, **''[ ]''**\\ | + | **''.''** ; **''*''**, **''^''**, **''$''**, **''[ ]''**,**''\<''** , **''\>''** \\ |
__Attention au caractère__ ''*'' :\\ | __Attention au caractère__ ''*'' :\\ | ||
Ligne 148: | Ligne 153: | ||
===Les crochets=== | ===Les crochets=== | ||
La chaîne non-vide encadrée par ''[ ]'' est considérée comme une ''E.R.'' d'un seul caractère pouvant avoir n'importe quelle valeur définie entre ces ''[]''.\\ | La chaîne non-vide encadrée par ''[ ]'' est considérée comme une ''E.R.'' d'un seul caractère pouvant avoir n'importe quelle valeur définie entre ces ''[]''.\\ | ||
+ | |||
+ | <code user>echo "1 B 2 b à bB" | sed 's/[Bb]/gaga/g'</code> | ||
+ | |||
+ | 1 gaga 2 gaga à gagagaga | ||
À l'inverse, la E.R représentée par ''[^...]'' est une chaîne composée de tous caractères à l'exclusion de ceux encadrés.\\ | À l'inverse, la E.R représentée par ''[^...]'' est une chaîne composée de tous caractères à l'exclusion de ceux encadrés.\\ | ||
//( le caractère ''^'' ne spécifie cette fonctionnalité d'exclusion que s'il se trouve en première position, immédiatement après le ''['' )// | //( le caractère ''^'' ne spécifie cette fonctionnalité d'exclusion que s'il se trouve en première position, immédiatement après le ''['' )// | ||
+ | |||
+ | >À l'exclusion de tous caractères ! Y compris l'espace : | ||
+ | |||
+ | <code user>echo "1 B 2 b à bB" | sed 's/[^Bb]/gaga/g'</code> | ||
+ | |||
+ | gagagagaBgagagagagagabgagagagagagabB | ||
Une combinaison de plusieurs E.R. d'un seul caractère est une E.R. qui correspond à l'ensemble de ce que chaque E.R. désigne.\\ Par exemple ''a[bB]'' recherche ''ab'' ou ''aB''. | Une combinaison de plusieurs E.R. d'un seul caractère est une E.R. qui correspond à l'ensemble de ce que chaque E.R. désigne.\\ Par exemple ''a[bB]'' recherche ''ab'' ou ''aB''. |