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 [15/08/2014 12:29] Hypathie [Les classes] |
utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes [15/08/2014 17:24] Hypathie [Introduction] |
||
---|---|---|---|
Ligne 23: | Ligne 23: | ||
Ce dernier point est rarement mis en avant, il est pourtant crucial de le soulever, pour des raisons autant pédagogiques, que philosophiques.\\ Le fondement en est simplement la certitude que //le dédain envers la diversité//, tandis que l'entendement est la puissance d'éprouver l'unité cachée sous tout genre de multiple, est une tentative qui s'ignore d'instrumentaliser la raison. | Ce dernier point est rarement mis en avant, il est pourtant crucial de le soulever, pour des raisons autant pédagogiques, que philosophiques.\\ Le fondement en est simplement la certitude que //le dédain envers la diversité//, tandis que l'entendement est la puissance d'éprouver l'unité cachée sous tout genre de multiple, est une tentative qui s'ignore d'instrumentaliser la raison. | ||
- | **Pour en prendre le contre-pied, cette présentation des expressions rationnelles souhaite éclairer leurs divers utilisations ainsi que la nécessité de leurs diversités, en les exposant du point de vue des commandes de recherches et d'édition de fichiers GNU/linux.**\\ | + | **En bref, il s'agira de donner accès à l'utilisation, en ligne de commandes GNU/linux, des expressions rationnelles POSIX de la bibliothèque REGEX.** |
- | + | ||
- | **En bref, il s'agira de donner accès à l'utilisation, en ligne de commandes ou dans des scripts shell GNU/linux, des expressions rationnelles POSIX de la bibliothèque REGEX.** | + | |
====Les types de ER ==== | ====Les types de ER ==== | ||
Ligne 37: | Ligne 35: | ||
Les raccourcis (par exemples, retour à la ligne ''\n'', tabulation ''\t'') étant particuliers aux programmes, seront listés en complément. | Les raccourcis (par exemples, retour à la ligne ''\n'', tabulation ''\t'') étant particuliers aux programmes, seront listés en complément. | ||
+ | |||
+ | **Le détail des expressions régulières est présenté ainsi :** | ||
+ | - **[[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]].** | ||
+ | - **les caractères spécifiques [[utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes?&#caracteres-specifiques-aux-erb|aux ERb]] et [[utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes?&#caracteres-specifiques-aux-ere|aux ERe]].** | ||
+ | - **[[utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes?&#les-classes|les classes]]** | ||
==== Panorama exhaustif des programmes GNU/Linux concernés par les expressions rationnelles=== | ==== Panorama exhaustif des programmes GNU/Linux concernés par les expressions rationnelles=== | ||
Ligne 64: | Ligne 67: | ||
|**''[ ]''** |un caractère cité dans la liste entre crochets |''echo [Tt][io]t[io]''((echo "Toto Tito toto toti tito loto" | echo [Tt][io]t[io]))\\ **affiche les fichiers**\\ Toto\\ Tito\\ toto\\ toti\\ ...\\ **mais pas**\\ loto\\ ... | | |**''[ ]''** |un caractère cité dans la liste entre crochets |''echo [Tt][io]t[io]''((echo "Toto Tito toto toti tito loto" | echo [Tt][io]t[io]))\\ **affiche les fichiers**\\ Toto\\ Tito\\ toto\\ toti\\ ...\\ **mais pas**\\ loto\\ ... | | ||
|**''[ - ]''**\\ [a-z]\\ [A-Z]\\ [A-Z]\\ [0-9] |groupe de caractères |''head t[a-z]to''\\ **affiche**\\ titi\\ tito\\ toto\\ ...\\ **mais pas**\\ tOto\\ t5to\\ | | |**''[ - ]''**\\ [a-z]\\ [A-Z]\\ [A-Z]\\ [0-9] |groupe de caractères |''head t[a-z]to''\\ **affiche**\\ titi\\ tito\\ toto\\ ...\\ **mais pas**\\ tOto\\ t5to\\ | | ||
+ | |||
+ | |||
+ | ====Métacaractère ou caractère d'expression rationnelle ?==== | ||
+ | Les commandes de recherche et d'édition de fichiers peuvent utiliser métacaractères et les caractères servant aux expressions rationnelles. | ||
===Préparation=== | ===Préparation=== | ||
Ligne 96: | Ligne 103: | ||
</note> | </note> | ||
- | ===Métacaractère ou caractère d'expression rationnelle ?=== | + | ===grep=== |
* __L'étoile__ : | * __L'étoile__ : | ||
Ligne 149: | Ligne 156: | ||
Toto1.txt:il a tout mangé. | Toto1.txt:il a tout mangé. | ||
</code> | </code> | ||
- | |||
- | ====Métacaractères du shell et commandes utilisant les expressions rationnelles==== | ||
- | |||
- | Parmi les commandes GNU/Linux utilisant les expressions rationnelles, d'autres commandes que **grep** ou **grep -E** utilisent aussi les métacaractères.\\ | ||
- | |||
- | Il s'agit de **find** et **locate**. | ||
=== find=== | === find=== | ||
Ligne 301: | Ligne 302: | ||
ou '':previous'', si l'on se trouve devant le second et qu'on veut revenir au premier. | ou '':previous'', si l'on se trouve devant le second et qu'on veut revenir au premier. | ||
- | D'autres exemples un peu plus détaillés sur [[utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes#la-commande-sed-et-les-caracteres-communs-aux-erb-et-ere|sed]], [[utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes#awk-et-les-caracteres-communs-aux-erb-et-ere|awk]] et [[utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes#l-editeur-de-texte-vi-n-utilise-aussi-que-les-erb|vim]] seront donnés. | + | D'autres exemples d'utilisation des expressions rationnelles avec [[utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes#l-editeur-de-texte-vi-n-utilise-aussi-que-les-erb|vim]] seront donnés. |
</note> | </note> | ||
Ligne 309: | Ligne 310: | ||
====Caractères communs aux ERb et ERe==== | ====Caractères communs aux ERb et ERe==== | ||
<note tip> | <note tip> | ||
- | * Certains caractères sont communs au ERb et ERe.\\ Pour ne pas avoir à les répéter, il est préférable de les regrouper. D'autant plus que les commandes qui permettent de se servir des expressions rationnelles, reconnaissent tous les caractères communs aux ERb et ERe. | + | * Certains caractères sont communs au ERb et ERe.\\ Il est possible de les regrouper car toutes les commandes qui permettent de se servir des expressions rationnelles, reconnaissent tous les caractères communs aux ERb et ERe. |
- | * Certaines commandes utilisent soit les ERb soit les ERe en fonction d'option :\\ il s'agit de **''grep''** ; **''sed''** ; **''locate''** ; et **''find''**. | + | * Certaines commandes les utilisent soit en tant que ERb, soit en tant que ERe :\\ il s'agit de **''grep''** ; **''sed''** ; **''locate''** ; et **''find''**. |
- | * **''awk''** (gawk) utilise les ERe. | + | * **''awk''** (gawk) les utilise en tant que ERe. |
- | * **''vi''** (vim) et **''expr''** n'utilisent que les ERb. | + | * **''vi''** (vim) et **''expr''** les utilisent en tant que ERb. |
</note> | </note> | ||
Ligne 1499: | Ligne 1500: | ||
La commande grep utilise les classes soit comme ERb et soit comme ERe, c'est-à-dire sans l'option -E ou avec l'option -E | La commande grep utilise les classes soit comme ERb et soit comme ERe, c'est-à-dire sans l'option -E ou avec l'option -E | ||
- | Préparation === | + | ===Préparation === |
* soit le fichier " | * soit le fichier " | ||
<code user>cd ~/ERetCMD/ && cat >> liste-class <<EOF | <code user>cd ~/ERetCMD/ && cat >> liste-class <<EOF | ||
Ligne 1725: | Ligne 1726: | ||
=====awk les ERe et les classes===== | =====awk les ERe et les classes===== | ||
- | <code user>cat liste2-nom</code> | + | <code user>cd ~/ERetCMD && cat >> liste2-nom <<EOF |
- | <code> | + | |
Constance 20-03-1998 | Constance 20-03-1998 | ||
Rebecca 09-03-1999 | Rebecca 09-03-1999 | ||
Ligne 1733: | Ligne 1733: | ||
Hélène-Fleur 06-03-2005 | Hélène-Fleur 06-03-2005 | ||
Samuel 27-08-2008 | Samuel 27-08-2008 | ||
+ | EOF | ||
</code> | </code> | ||