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
doc:programmation:shell:regexp [26/08/2013 17:00]
smolski [Introduction]
doc:programmation:shell:regexp [21/09/2013 19:07]
127.0.0.1 modification externe
Ligne 10: Ligne 10:
   * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=1038 | Lien vers le forum concernant ce tuto]]   * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=1038 | Lien vers le forum concernant ce tuto]]
  
-  ​N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !+>N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
  
 ===== Utilisation ===== ===== Utilisation =====
Ligne 29: Ligne 29:
 La nuance est que l'​expression va concerner l'​expansion et non la modification dans les chaines de caractère. La nuance est que l'​expression va concerner l'​expansion et non la modification dans les chaines de caractère.
  
-Vous connaissez sûrement __au moins deux__ des principales expressions Glob mises ici : +Vous connaissez sûrement __au moins deux__ des principales expressions Glob mises ici : ''​? * \ []''​
-    ​? * \ []+
  
 //Merci à //​**Haricophile**//​ pour cette présentation.//​ :-) //Merci à //​**Haricophile**//​ pour cette présentation.//​ :-)
Ligne 39: Ligne 38:
 Ces règles ne sont pas transmises au programme tel quel mais sont remplacées par le shell utilisé. Ces règles ne sont pas transmises au programme tel quel mais sont remplacées par le shell utilisé.
  
-Pour la commodité de ce tuto, sauf indication contraire, nous utiliserons ici le shell [[manuel:bash]].+Pour la commodité de ce tuto, sauf indication contraire, nous utiliserons ici le shell [[:​doc:​programmation:bash]].
  
-Par exemple pour cette commande [[commande:ls]] dont l'​option **-d** permet à **ls** de lister uniquement les répertoires,​ sans leur contenu :+Par exemple pour cette commande [[:​doc:​systeme:ls]] dont l'​option **-d** permet à **ls** de lister uniquement les répertoires,​ sans leur contenu :
 <code bash> <code bash>
 ls -d *</​code>​ ls -d *</​code>​
Ligne 53: Ligne 52:
 Tout d'​abord,​ un exemple pour appréhender les notions utilisées dans cette page. \\ Tout d'​abord,​ un exemple pour appréhender les notions utilisées dans cette page. \\
 Imaginons que, dans un répertoire,​ nous désirons sélectionner toutes les //chaînes de caractères//​((**CHAÎNE DE CARACTÈRES** : \\ Imaginons que, dans un répertoire,​ nous désirons sélectionner toutes les //chaînes de caractères//​((**CHAÎNE DE CARACTÈRES** : \\
-Les //chaîne de caractères//​ sont des caractères accolés, un mot, une phrase ou un nom de fichier. ​\\)) dont la rédaction contient **3 a** contigues (**aaa**). \\ +Les //chaîne de caractères//​ sont des caractères accolés, un mot, une phrase ou un nom de fichier.)) dont la rédaction contient **3 a** contigues (**aaa**). \\ 
-Cette chaîne recherchée,​ formée des 3 **a** contigues (**aaa**), encadrée ou non d'​autres lettres //​quelconques//,​ se nomme __dans son ensemble__ : +Cette chaîne recherchée,​ formée des 3 **a** contigues (**aaa**), encadrée ou non d'​autres lettres //​quelconques//,​ se nomme __dans son ensemble__ : ''​un motif''​.
-   un motif+
  
 Pour décrire précisément ces **motifs** à un programme, on utilise des //​expressions régulières//​ ou //regular expression//​ (ou encore un **regexp** en abrégé courant). Pour décrire précisément ces **motifs** à un programme, on utilise des //​expressions régulières//​ ou //regular expression//​ (ou encore un **regexp** en abrégé courant).
Ligne 63: Ligne 61:
 Pour ces **regexp**, __Différents programmes__ //​utilisent//​ __différentes syntaxes__, de ce fait leur __symbolique peut être différente__ il faut donc bien distinguer le contexte où interviennent les **regexp**. Pour ces **regexp**, __Différents programmes__ //​utilisent//​ __différentes syntaxes__, de ce fait leur __symbolique peut être différente__ il faut donc bien distinguer le contexte où interviennent les **regexp**.
  
-Par exemple, un **regexp** destiné à l'​utilisation d'une commande [[commande:sed]], [[manuel:find]], [[commande:locate]] ou [[commande:grep]], devra être écrit différemment dans le contexte de __l'​utilisation d'une commande **bash**__ (voir : [[commande:​les_metacaracteres | Bash - Les metacaractères (Pattern - Glob)]]).+Par exemple, un **regexp** destiné à l'​utilisation d'une commande [[:​doc:​systeme:sed]], [[:​doc:​systeme:find]], [[:​doc:​systeme:locate]] ou [[:​doc:​systeme:grep]], devra être écrit différemment dans le contexte de __l'​utilisation d'une commande **bash**__ (voir : [[commande:​les_metacaracteres | Bash - Les metacaractères (Pattern - Glob)]]).
  
 //Idem pour des contextes différents...//​ //Idem pour des contextes différents...//​
Ligne 73: Ligne 71:
 ==== Illustration ==== ==== Illustration ====
  
-== Dans l'​utilisation de find - locate - grep - sed ==+== Pour find - locate - grep - sed ==
  
-   pl[oi]p+Avec : ''​pl[oi]p''​ les caractères //​crochets//​ ''​[ ]''​ définissent les **regexp** concernant les chaînes de caractères ''​plop plip''​.
  
-Ces caractères //​crochets//​ ''​[ ]''​ définissent les **regexp** concernant les chaînes de caractères ''​plop plip''​.+== Pour bash : ==
  
-== Et pour bash : ==+Pour avoir la même expression ​pour bash, il faut écrire ​''​pl{o,​i}p''​
  
-   ​pl{o,​i}p +Nous voyons que dans le contexte **bash**, il faudra plutôt utiliser ​les caractères //​accolades//​ ''​{ }''​ pour définir les **glob** concernant les mêmes chaînes de caractères ''​plop plip''​.
- +
-Nous voyons que dans le contexte **bash**, il faudra plutôt utiliser ​ces caractères //​accolades//​ ''​{}''​ pour définir les **glob** concernant les mêmes chaînes de caractères ''​plop plip''​.+
  
 ==== Conclusion ==== ==== Conclusion ====
Ligne 98: Ligne 94:
  
   - [[manuel:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   - [[manuel:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
-  - [[manuel:vim]] - L'​éditeur fétiche des amoureux du terminal !+  - [[:​doc:​editeurs:vim]] - L'​éditeur fétiche des amoureux du terminal !
  
-Pour réaliser les TP mis en exemple dans ce tuto, il vous faut préparer ces  ​répertoire ​et fichier, permettant d'​accomplir les TP qui vont suivre. \\+Pour réaliser les TP mis en exemple dans ce tuto, il vous faut préparer ces répertoires ​et fichiers, permettant d'​accomplir les TP qui vont suivre. \\
 Créer le repertoire ''​tuto_regexp''​ dans votre ''/​home/​user''​ : Créer le repertoire ''​tuto_regexp''​ dans votre ''/​home/​user''​ :
- +<code bash> 
-   $ mkdir /​home/​user/​tuto_regexp+mkdir /​home/​user/​tuto_regexp</​code>​
  
 Compléter ce répertoire avec les TP qui suivent. \\  Compléter ce répertoire avec les TP qui suivent. \\ 
-Nous seront ainsi fin prêt pour réaliser les TP mis en exemple dans ce tuto ! ;-)+Nous seront ainsi fin prêts ​pour réaliser les TP mis en exemple dans ce tuto ! ;-)
  
 === TP-01 === === TP-01 ===
doc/programmation/shell/regexp.txt · Dernière modification: 05/07/2023 11:44 par Croutons

Pied de page des forums

Propulsé par FluxBB