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

Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:programmation:shell:regexp [26/08/2013 12:24]
smolski créée
doc:programmation:shell:regexp [26/08/2013 17:29]
smolski [REGEXP]
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]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))+  * 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 !
  
 ===== Utilisation ===== ===== Utilisation =====
Ligne 34: Ligne 36:
 ===== Introduction ===== ===== Introduction =====
  
-Les regexp ​**[[manuel:bash]]** **dash** **zsh** //​etc...// ​sont des regexp pour les noms de fichiers ​même. \\ +Les //regexp// des [[manuel:shell]] sont des règles ​de filtrage permettant de sélectionner des fichiers ​selon leur nom ou leur emplacement. \\ 
-Elles ne sont pas transmises au programme tel quel mais remplacées par bash.+Ces règles ​ne sont pas transmises au programme tel quel mais sont remplacées par le shell utilisé.
  
-Par exemple pour cette commande [[commande:​ls]]((l'​option **-d** permet à **ls** de lister les répertoires sans leur contenu)):+Pour la commodité de ce tuto, sauf indication contraire, nous utiliserons ici le shell [[manuel:​bash]]. 
 + 
 +Par exemple pour cette commande [[commande:​ls]] ​dont l'​option **-d** permet à **ls** de lister ​uniquement ​les répertoiressans leur contenu :
 <code bash> <code bash>
 ls -d *</​code>​ ls -d *</​code>​
  
-C'est bash qui va **interpréter** la regexp * (étoile) et la remplacer par tout le contenu du répertoire rendu ainsi lisible pour la commande ls et son action ​propre ​sur chacun d'eux.+C'est bash qui va **interpréter** la regexp * (étoile) et la remplacer par tout le contenu du répertoire rendu ainsi lisible pour la commande ls et son action sur chacun d'eux.
    ​fichier1 fichier2 … dossier1 …    ​fichier1 fichier2 … dossier1 …
  
Ligne 48: 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** : \\ 
-Ce sont des caractères accolés, un mot, une phrase ou un nom de fichier. ​\\ +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**). \\ 
-)) 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__ : ''​un motif''​.
-Cette chaîne formée des 3 **a** contigues (**aaa**), encadrée ​par un nombre //​quelconque//​ (éventuellement nul) de lettres //​quelconques//,​ se nomme __dans son ensemble__ : +
-   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 58: Ligne 60:
 ==== Syntaxes ==== ==== Syntaxes ====
  
-Pour ces **regexp**, __Différents programmes__ //​utilisent//​ __différentes syntaxes__, de ce fait leur __symbolique peut être différente__ il alors faut 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 ​**sed****find** **locate** ou **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 ​[[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)]]). 
 //Idem pour des contextes différents...//​ //Idem pour des contextes différents...//​
  
-Pour être clair dans ce wiki, nous indiquerons le terme REGEXP pour ce qui concerne le contexte //find - locate - grep - sed//. \\ +Pour être clair dans ce wiki, 
-Et nous utiliserons le terme GLOB pour ce qui concerne le contexte du //bash//.+  - 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//.
  
 ==== Illustration ==== ==== Illustration ====
  
-== Dans l'​utilisation de find - locate - grep - sed ==+== Pour find - locate - grep - sed ==
  
 +Ecrire :
    ​pl[oi]p    ​pl[oi]p
  
 Ces 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''​.
  
-== Et pour bash : ==+== Pour bash : ==
  
 +Pour avoir la même expression, il faut écrire :
    ​pl{o,​i}p    ​pl{o,​i}p
  
-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''​.+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 ====
Ligne 96: Ligne 103:
 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épertoire et fichier, 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. \\ 
doc/programmation/shell/regexp.txt · Dernière modification: 05/07/2023 11:44 par Croutons

Pied de page des forums

Propulsé par FluxBB