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 18:25]
smolski [Introduction]
doc:programmation:shell:regexp [22/09/2013 09:56]
smolski [Introduction]
Ligne 8: Ligne 8:
     * Création par **smolski** 26/08/2013     * Création par **smolski** 26/08/2013
     * Testé par <...> le <...>     * Testé par <...> le <...>
-  * 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 remarquessuccèsaméliorations ​ou échecs ​!+=== Nota === 
 + 
 +Contributeursles FIXME sont là pour vous aidersupprimez-les une fois le problème corrigé ​ou le champ rempli ​!
  
 ===== Utilisation ===== ===== Utilisation =====
Ligne 23: Ligne 25:
 //Même si c'est souvent un exercice de l'​esprit,​ ça vaut le coup de faire l'​effort d'​apprendre à les utiliser.// //Même si c'est souvent un exercice de l'​esprit,​ ça vaut le coup de faire l'​effort d'​apprendre à les utiliser.//
  
-Attention, il existe plusieurs syntaxes de regexp qui diffèrent un peu selon les programmes, pas pour ennuyer l'​utilisateur,​ mais il s'agit de choix faits pour des raisons de fonctionnalités et d'​optimisation. \\ +<note warning>​**Attention**, il existe plusieurs syntaxes de regexp qui diffèrent un peu selon les programmes, pas pour ennuyer l'​utilisateur,​ mais il s'agit de choix faits pour des raisons de fonctionnalités et d'​optimisation. \\ 
-Il faut donc savoir si vous utilisez la norme **POSIX**, **perl**, **python**...+Il faut donc savoir si vous utilisez la norme **POSIX**, **perl**, **python**...</​note>​
  
 À noter que, concernant le shell (la ligne de commande) vous allez aussi trouver le mot **Glob**. \\ À noter que, concernant le shell (la ligne de commande) vous allez aussi trouver le mot **Glob**. \\
Ligne 36: Ligne 38:
  
 Les //regexp// des [[manuel:​shell]] sont des règles de filtrage permettant de sélectionner des fichiers selon leur nom ou leur emplacement. \\ Les //regexp// des [[manuel:​shell]] sont des règles de filtrage permettant de sélectionner des fichiers selon leur nom ou leur emplacement. \\
-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é, aussi, pour la commodité de ce tuto et sauf indication contraire, nous utiliserons ici le shell [[:​doc:​programmation:​bash]].
  
-Pour la commodité de ce tuto, sauf indication contraire, nous utiliserons ici le shell [[manuel:​bash]]. +Par exemple pour cette commande [[:​doc:​systeme:ls]] dont l'​option **-d** permet à **ls** de lister uniquement les répertoires,​ sans leur contenu : 
- +<​code ​user>
-Par exemple pour cette commande [[commande:ls]] dont l'​option **-d** permet à **ls** de lister uniquement les répertoires,​ sans leur contenu : +
-<​code ​bash>+
 ls -d *</​code>​ ls -d *</​code>​
  
Ligne 48: Ligne 48:
  
 <note important>​**ATTENTION !** <note important>​**ATTENTION !**
-De par leur statut de caractères spéciaux, les ''​regexp'' ​ne peuvent pas être utilisées n'​importe comment, leur rédaction demande une vrai connaissance de ce que l'on désire faire au final.</​note>​+De par leur statut de caractères spéciaux, les **regexp** ne peuvent pas être utilisées n'​importe comment, leur rédaction demande une vrai connaissance de ce que l'on désire faire au final.</​note>​
  
 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. \\
Ligne 59: Ligne 59:
 ==== Syntaxes ==== ==== Syntaxes ====
  
-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 leurs __symboliques peuvent ​être différentes__ ​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 ​que 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...//​
  
 Pour être clair dans ce wiki, Pour être clair dans ce wiki,
-  - nous indiquerons le terme REGEXP pour ce qui concerne le contexte //find - locate - grep - sed// +  - nous indiquerons le terme **REGEXP** pour ce qui concerne le contexte //find - locate - grep - sed// 
-  - et nous utiliserons le terme GLOB pour ce qui concerne le contexte du //bash//.+  - et nous utiliserons le terme **GLOB** pour ce qui concerne le contexte du //bash//.
  
 ==== Illustration ==== ==== Illustration ====
Ligne 77: Ligne 77:
 == Pour bash : == == Pour bash : ==
  
-Pour avoir la même expression ​pour bash, il faut écrire : ''​pl{o,​i}p''​ +Pour avoir la même expression ​avec bash, il faudra ​écrire : ''​pl{o,​i}p''​. \\ 
- +Nous voyons ​donc que dans le contexte **bash**, il faudra utiliser((à la place des caractères //​crochets//​ ''​[...]''​ de l'​exemple précédent)) ​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 les caractères //​accolades//​ ''​{ }''​ pour définir les **glob** concernant les mêmes chaînes de caractères ''​plop plip''​.+
  
 ==== Conclusion ==== ==== Conclusion ====
  
-Il y a donc bien lieu d'__utiliser ​les bons termes__ ​pour rédiger une commande au résultat identique ​__selon ​le bon contexte__. \\+Il y a donc bien lieu d'__//​utiliser ​les bons termes//​__ ​pour rédiger une commande au résultat identique ​__//​selon ​le bon contexte//​__. \\
 C'est pourquoi ce tuto s'​attache particulièrement à différencier ce contexte d'​utilisation. C'est pourquoi ce tuto s'​attache particulièrement à différencier ce contexte d'​utilisation.
  
Ligne 94: Ligne 93:
  
   - [[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> <code bash>
Ligne 102: Ligne 101:
  
 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