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 Prochaine révision Les deux révisions suivantes | ||
utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes [13/08/2014 10:46] Hypathie [Caractères spécifiques aux ERb] |
utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes [13/08/2014 12:13] Hypathie [Caractères spécifiques aux ERb] |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
* Objet : maîtriser les expressions rationnelles basiques et étendues ainsi que les classes POSIX | * Objet : maîtriser les expressions rationnelles basiques et étendues ainsi que les classes POSIX | ||
* Niveau requis : {{avisé}} | * Niveau requis : {{avisé}} | ||
- | * Commentaires : utiliser les expressions rationnelles basiques, étendues, les classes avec grep, grep -E, find, locate, expr, vi (vim), sed et awk. | + | * Commentaires : utiliser les expressions rationnelles basiques, étendues, les classes avec grep, grep -E, find, locate, expr, vi, sed et awk. |
**NOTA**\\ | **NOTA**\\ | ||
Ligne 39: | Ligne 39: | ||
* les classes POSIX (considérer soit comme ERb, soit comme ERe selon les programmes | * les classes POSIX (considérer soit comme ERb, soit comme ERe selon les programmes | ||
- | Les raccourcis (par exemples, retour à la ligne ''\n'', tabulation ''\t'') étant particuliers aux programmes, seront listés en complément mais ne seront pas exemplifiés. | + | Les raccourcis (par exemples, retour à la ligne ''\n'', tabulation ''\t'') étant particuliers aux programmes, seront listés en complément. |
- | ==== Panorama exhaustif des programmes GNU/Linux concernés par les ERE=== | + | ==== Panorama exhaustif des programmes GNU/Linux concernés par les expressions rationnelles=== |
* **expr** : **ERb**\\ pour la correspondance de chaîne de caractères avec une expression régulière. | * **expr** : **ERb**\\ pour la correspondance de chaîne de caractères avec une expression régulière. | ||
Ligne 47: | Ligne 47: | ||
* **find** : **ERb** en le précisant avec l'option **''-regextype "posix-basic"''** ou **ERe** en précisant avec l'option **''-regextype "posix-extended"''**\\ rechercher de fichier en fonction du motif spécifié par la //ER//. | * **find** : **ERb** en le précisant avec l'option **''-regextype "posix-basic"''** ou **ERe** en précisant avec l'option **''-regextype "posix-extended"''**\\ rechercher de fichier en fonction du motif spécifié par la //ER//. | ||
* **locate** : **ERb** avec l'option **''- -regexp''** ou **ERe** avec l'option **''- -regex''**\\ recherche de fichiers selon un motif dans la base de données. | * **locate** : **ERb** avec l'option **''- -regexp''** ou **ERe** avec l'option **''- -regex''**\\ recherche de fichiers selon un motif dans la base de données. | ||
- | * **vi** (**vim**) : **ERb**\\ recherche et substitution de chaîne de caractères. | + | * **vi** : **ERb**\\ recherche et substitution de chaîne de caractères. |
* **egrep** ou **grep -E** : **ERe**\\ Même usage que grep | * **egrep** ou **grep -E** : **ERe**\\ Même usage que grep | ||
* **sed** : **ERb**\\ par exemple, sélectionne, modifie les chaînes d'un fichier ou de l'affichage en se basant sur les colonnes. La //ER// permet de sélectionner quelle(s) colonne(s) est (sont) concernée(s). | * **sed** : **ERb**\\ par exemple, sélectionne, modifie les chaînes d'un fichier ou de l'affichage en se basant sur les colonnes. La //ER// permet de sélectionner quelle(s) colonne(s) est (sont) concernée(s). | ||
Ligne 700: | Ligne 700: | ||
Les commandes **''grep''** (ou **''grep -G''**) ; **''find -regextype "posix-basic" ''** ; | Les commandes **''grep''** (ou **''grep -G''**) ; **''find -regextype "posix-basic" ''** ; | ||
- | **''locate --regexp''** ; **''sed''**; **''vi''** (**''vim''**) utilisent en plus ces caractères-ci : | + | **''locate --regexp''** ; **''sed''**; **''vi''** utilisent en plus ces caractères-ci : |
^ ^ ^ | ^ ^ ^ | ||
Ligne 711: | Ligne 711: | ||
<note tip> | <note tip> | ||
- | Je présenterai principalement les commandes qui n'utilisent que les ERb, c'est-à-dire, celles qui n'ont pas besoin d'une option pour utiliser les expressions rationnelles et qui n'ont pas encore été abordées, **''expr''** et **''vi''** (**''vim''**).\\ | + | Je présenterai principalement les commandes qui n'utilisent que les ERb, c'est-à-dire, celles qui n'ont pas besoin d'une option pour utiliser les expressions rationnelles et qui n'ont pas encore été abordées, **''expr''** et **''vi''**.\\ |
Elles utilisent bien sûr tous [[utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes?&#caracteres-communs-aux-erb-et-ere|les caractères communs aux ERb et ERe]], leur utilisation avec ces caractères apparaîtra en à côté de l'utilisation des caractères spécifiques aux ERb. | Elles utilisent bien sûr tous [[utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes?&#caracteres-communs-aux-erb-et-ere|les caractères communs aux ERb et ERe]], leur utilisation avec ces caractères apparaîtra en à côté de l'utilisation des caractères spécifiques aux ERb. | ||
Ligne 750: | Ligne 750: | ||
* L'expression rationnelle est comparée par rapport au début de la variable, le caractère **''^''** est toujours implicite. | * L'expression rationnelle est comparée par rapport au début de la variable, le caractère **''^''** est toujours implicite. | ||
* Si une partie de l'expression rationnelle est mémorisée avec **''\( \)''** la commande expr affiche dans le terminal la partie correspondante. | * Si une partie de l'expression rationnelle est mémorisée avec **''\( \)''** la commande expr affiche dans le terminal la partie correspondante. | ||
+ | * **''expr''** utilise tous les [[utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes?&#caracteres-communs-aux-erb-et-ere|caractères communs aux ERb et ERe]] | ||
+ | * mais elle n'utilise que les caractères spécifiques aux ERb ci-dessous : | ||
+ | |||
+ | |**''<nowiki>\{m\}</nowiki>''** | m fois le caractère précédent | | ||
+ | |**''<nowiki>\{m,\} </nowiki>''** | au moins m fois le caractère précédent | | ||
+ | |**''<nowiki>\{m,n\} </nowiki>''** | entre m et n fois le caractère précédent | | ||
+ | |**''<nowiki>\(ERb\)</nowiki>''** | mémorisation d'une ERb | | ||
+ | |**''<nowiki>\1, \2, ...</nowiki>''** | Rappel de mémorisation | | ||
+ | |||
</note> | </note> | ||
Ligne 819: | Ligne 828: | ||
====L'éditeur de texte vi n'utilise que les ERb ==== | ====L'éditeur de texte vi n'utilise que les ERb ==== | ||
===Préparation === | ===Préparation === | ||
- | <code user>cat liste4-vim</code> | + | <code user>vi liste4-vim</code> |
- | <code> | + | ou |
- | Kc5 T5 c E2* abcd 7 9Abcd | + | <code user>vim liste4-vim</code> |
- | 7 1AAA.AAA.bcdef aBcd6a 123* | + | |
- | abc2356.99 | + | {{http://pix.toile-libre.org/upload/original/1407922486.png?400}} |
- | 73000|Savoie | + | |
- | index-tel|04|Rhône-Alpe | + | |
- | -15 +36 5687 {15} exemple{36} | + | |
- | il y a un truc et un truc et encore un truc et une chose | + | |
- | chose et truc ne font pas bon ménage | + | |
- | 123.3456.abc | + | |
- | trucchosetruc | + | |
- | tructructruc | + | |
- | chosechosechose | + | |
- | </code> | + | |
<note tip> | <note tip> | ||
- | Modes utilises dans ce qui suit\\ | + | Modes utilisés dans ce qui suit :\\ |
Ligne 853: | Ligne 852: | ||
* enregistrez : '' :wq '' et touche <entrée> | * enregistrez : '' :wq '' et touche <entrée> | ||
- | * En plus des [[utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes?&#caracteres-specifiques-aux-erb|caractères spécifiques aux ERb]] vi (vim) utilise les caractères spécifiques aux ERb ci-dessous (comme grep): | + | * vi (vim) utilise tous [[utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes?&#caracteres-communs-aux-erb-et-ere|les caractères communs aux ERb et ERe]], tous [[utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes?&#caracteres-specifiques-aux-erb|les caractères spécifiques aux ERb]], y compris ceux ci-dessous (comme "les commandes à option"): |
|**''<nowiki>\?</nowiki>''** | zéro ou une fois l'élément précédent | | |**''<nowiki>\?</nowiki>''** | zéro ou une fois l'élément précédent | | ||
Ligne 970: | Ligne 969: | ||
===== grep, sed, find, locate et les caractères spécifiques aux ERb ===== | ===== grep, sed, find, locate et les caractères spécifiques aux ERb ===== | ||
- | Les commandes grep et sed sans option, les commandes locate --regexp et find -regextype “posix-basic” avec option utilisent les caractères spécifiques aux ERb.\\ Puisqu'il est plus pratique de les utiliser avec les ERe qui sont plus lisibles, je n'en donnerai que quelques exemples ici. | + | Les commandes **''grep''** et **''sed''**, les commandes **''locate --regexp''** et **''find -regextype “posix-basic”''** utilisent tous les caractères spécifiques aux ERb.\\ Voir leur utilisation avec [[utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes?&#caracteres-des-ere|les expressions rationnelles étendues]]. |
* Rappel du fichier "<nowiki>liste4-spec</nowiki>": | * Rappel du fichier "<nowiki>liste4-spec</nowiki>": |