logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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:48]
Hypathie [Caractères spécifiques aux ERb]
utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes [13/08/2014 15:54]
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 836: Ligne 845:
  
 <note tip> <note tip>
-Modes utilises ​dans ce qui suit\\ ​+Modes utilisés ​dans ce qui suit :\\ 
  
  
Ligne 846: Ligne 855:
  
   * Pour tester ce qui suit si vous ne connaissez pas vi ou vim :\\    * Pour tester ce qui suit si vous ne connaissez pas vi ou vim :\\ 
-    *Après installation de vim, créer un fichier, par exemple "​liste4-vim"​ : ''​ vim liste4-vim ''​ +    *Après ​[[doc:​editeurs:​vim:​vim#​installation|installation de vim]], créer un fichier, par exemple "​liste4-vim"​ : ''​ vim liste4-vim ''​ 
-    *Copier le contenu de "​liste4-vim"​ ci-dessus ; +    * Copier le contenu de "​liste4-vim"​ ci-dessus ; 
-    *coller dans le fichier "​liste4-vim"​ édité avec vim en faisant ​+    * Pour coller dans le fichier "​liste4-vim"​ édité avec vim : 
     * touche <​majuscule de droite> + touche <​inser>​ (cela fait que l'on est en mode insertion)     * touche <​majuscule de droite> + touche <​inser>​ (cela fait que l'on est en mode insertion)
     * sortir du mode insertion : touche "​Échap"​     * sortir du mode insertion : touche "​Échap"​
-    * enregistrez ​: ''​ :wq ''​ et touche <​entrée>​+    * enregistrer et sortir ​: ''​ :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 "les commandes à option"​):​+  * 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" ​permettant de choisir le type //ER//):
  
 |**''<​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 866: Ligne 875:
 </​note>​ </​note>​
  
 +  * Éditer le fichier "​liste4-vim"​ :
 +  * Pour éditer le fichier avec vi ou vim :
 +
 +<code user>vi liste4-vim</​code>​
 +ou 
 +<code user>vim liste4-vim</​code>​
 +
 +{{http://​pix.toile-libre.org/​upload/​original/​1407922486.png?​400}}
  
 ===Syntaxe d'​utilisation des ER=== ===Syntaxe d'​utilisation des ER===
Ligne 937: Ligne 954:
 </​code>​ </​code>​
  
->"​1,​$"​ est l'​adressage qui signifie de la première ligne à la fin+>"​1,​$"​ est l'​adressage qui signifie de la première ligne à la fin.
  
   * utilisation de \| :   * utilisation de \| :
 <​code>/​c\|t</​code>​ <​code>/​c\|t</​code>​
  
->surligne tous les "​c"​ et tous les "​t"​ du fichier.+->Une image vaut mieux qu'une description :\\ 
 +{{http://​pix.toile-libre.org/​upload/​original/​1407937898.png?​400}}
  
   * Utilisation de \? :   * Utilisation de \? :
 <​code>/​\.[0-9]\?</​code>​ <​code>/​\.[0-9]\?</​code>​
  
-->Une image vaut mieux qu'une description ​:\\ +-> Là aussi :\\ 
 {{http://​pix.toile-libre.org/​upload/​original/​1407857157.png?​400}} {{http://​pix.toile-libre.org/​upload/​original/​1407857157.png?​400}}
  
Ligne 970: Ligne 988:
 ===== 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>":​
Ligne 1417: Ligne 1435:
   * Recherche :   * Recherche :
  
-<​code>/​[[:​alnum:​]]\{7\}\.[[:​digit:​]]\{2\} </​code>​+<​code>/​[[:​alnum:​]]\{7\}{[[:​digit:​]]\{2\}} </​code>​ 
 + 
 +-> sélectionne entièrement la chaîne **''​exemple{36}''​** 
 + 
 +  * Substitution <​nowiki>​[[:​graph:​]]</​nowiki>:​ 
 +<​code>:​6,​10s/​[[:​graph:​]]/​x/​g</​code>​
  
--sélectionne entièrement ​la ligne **''​abc2356.99''​**+Le caractère "​ô"​ n'est pas concerné du fait de la touche morte.
  
-  * Substitution ​: +{{http://pix.toile-libre.org/​upload/original/1407925315.png?​400}}
-<​code>:​3,​4s/[[:graph:]]/x/g</code>+
  
--les ligne 3 et 4 ne présentent plus que des "​x"​tous les caractères susceptibles d'​être concernés par la //ER// sont surlignés, c'​est-à-dire tous le texte sauf les espaces.+  * Substitution <nowiki>[[:​print:​]]</​nowiki>​ : 
 +<​code>:​6,10s/[[:print:]]/x/g</code>
  
--> Information sur les substitutions ​''​22 substitutions,​ sur 2 lignes''​+{{http://​pix.toile-libre.org/​upload/​original/​1407925697.png?​400}}
  
 ====awk utilise les ERe et les classes sans option==== ====awk utilise les ERe et les classes sans option====
utilisateurs/hypathie/tutos/erb-et-ere-par-le-contexte-des-commandes.txt · Dernière modification: 01/10/2023 11:39 (modification externe)

Pied de page des forums

Propulsé par FluxBB