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 | ||
doc:programmation:shells:bash-vii-globs-etendus-regex [09/07/2014 10:37] Hypathie [Correspondance de motifs avec les globs étendus] |
doc:programmation:shells:bash-vii-globs-etendus-regex [09/07/2014 10:56] Hypathie [Correspondance de motifs avec les expressions rationnelles] |
||
---|---|---|---|
Ligne 24: | Ligne 24: | ||
La "représentation symbolique"((en anglais : "matching")) de caractères alpha-numériques par des "métacaractères"((termes employé là dans un sens général)) est de deux types. Et on peut distinguer ces deux types relativement à l'utilisation que l'on en a :\\ | La "représentation symbolique"((en anglais : "matching")) de caractères alpha-numériques par des "métacaractères"((termes employé là dans un sens général)) est de deux types. Et on peut distinguer ces deux types relativement à l'utilisation que l'on en a :\\ | ||
- | - __sélectionner__ des noms de fichiers dans un répertoire (on recherche par exemple différents noms de fichiers) ;\\ | + | - __sélectionner__ des noms de fichiers dans un répertoire ;\\ |
- __déterminer__ si une chaîne est conforme à un format désiré.\\ | - __déterminer__ si une chaîne est conforme à un format désiré.\\ | ||
===Rappel : === | ===Rappel : === | ||
- | __Le premier type de représentation symbolique__ se fait avec [[doc:programmation:shell:les-metacaracteres|les globs ou patterns simples]] ; ils servent aux recherches sur les chaînes de caractères se font généralement en ligne de commandes, et il a été donné simple récapitulatif des caractères utilisés ici : [[atelier:chantier:bash-les-differents-caracteres-speciaux#metacaracteres-et-meta-caracteres|méta-caractères et métacaractères]].\\ | + | __Le premier type de représentation symbolique__ se fait avec [[doc:programmation:shell:les-metacaracteres|les globs ou patterns simples]] ; ils servent aux recherches sur les chaînes de caractères et se font généralement en ligne de commandes.\\ Il a été donné simple récapitulatif des caractères utilisés ici : [[atelier:chantier:bash-les-differents-caracteres-speciaux#metacaracteres-et-meta-caracteres|méta-caractères et métacaractères]].\\ |
===Distinguer le "globbing" étendu des expressions régulières === | ===Distinguer le "globbing" étendu des expressions régulières === | ||
Ligne 138: | Ligne 138: | ||
=====Correspondance de motifs avec les expressions rationnelles===== | =====Correspondance de motifs avec les expressions rationnelles===== | ||
- | ==== L'opérateur de correspondance =~ d'une expression rationnelle dans une expression de tests [[ ]] ==== | + | ==== L'opérateur de correspondance =~ ==== |
- | Certaines expressions régulières peuvent être utilisées avec bash, mais elles ne peuvent pas être utilisée comme modèle de comparaison avec des noms de fichier pour effectuer des recherches en ligne de commandes. Elles matchent des variables et s'utilisent dans le cadres des scripts.\\ | + | Bash peut utiliser les expressions régulières mais de façon restreinte.\\ Elles ne peuvent pas être utilisée comme modèle de comparaison avec des noms de fichier ou pour effectuer des recherches en ligne de commandes.\\ Elles servent seulement à "matcher" des variables, et elles ne s'utilisent que dans le cadres des scripts.\\ |
- | Les expressions régulières reconnues par Bash sont nommées ERE ("expression régulière étendues").\\ | + | Depuis __Bash 3.0__, on peut pour se faire utiliser l'opérateur ''=~''.\\ Cet opérateur ''=~'' permet : |
- | Depuis __Bash 3.0__, on peut pour se faire utiliser l'opérateur ''=~''.\\ Cet opérateur ''=~'' permet alors de vérifier la correspondre entre une chaîne (valeur d'une variable à gauche) et le modèle regex à droite.\\ | + | * de vérifier la correspondre entre une chaîne (valeur d'une variable à gauche) et le modèle regex à droite ; |
- | Ou encore de vérifier la correspondance entre une variable constituée d'une chaîne de caractères littérales, et une variable constituée d'une regex.\\ | + | * ou encore de vérifier la correspondance entre une variable (constituée d'une chaîne de caractères littérales), et une variable constituée d'une regex. |
- | Voici quelques liens qui présentent la syntaxe et les caractères utilisables avec Bash sans les commandes grep, sed, awk.\\ | + | |
+ | Voici quelques liens qui présentent la syntaxe et les caractères utilisables avec Bash (sans les commandes ''grep'', ''sed'', ''awk'').\\ | ||
* [[http://mywiki.wooledge.org/RegularExpression]]\\ | * [[http://mywiki.wooledge.org/RegularExpression]]\\ | ||
* [[https://en.wikipedia.org/wiki/Regular_expression#Standards]]\\ | * [[https://en.wikipedia.org/wiki/Regular_expression#Standards]]\\ | ||
+ | <note> | ||
+ | À savoir :\\ | ||
Lorsque la chaîne correspond au motif, le code retour du test renvoie 0 pour vrai, sinon, il renvoie 1 pour faux.\\ | Lorsque la chaîne correspond au motif, le code retour du test renvoie 0 pour vrai, sinon, il renvoie 1 pour faux.\\ | ||
Si la syntaxe du pattern n'est pas valide le code de retour est 2.\\ | Si la syntaxe du pattern n'est pas valide le code de retour est 2.\\ | ||
- | Lorsqu'une chaîne correspond, chacune des parties du motif sont disponibles dans la variable $BASH_REMATCH. | + | Lorsqu'une chaîne correspond, chacune des parties du motif sont disponibles dans la variable ''$BASH_REMATCH''. |
- | + | </note> | |
- | ==== Liste des caractères utilisés dans les expressions régulières étendues==== | + | ==== Tableau des caractères utilisés dans les expressions régulières étendues==== |
**Voici les caractères utilisables :** | **Voici les caractères utilisables :** | ||
Ligne 178: | Ligne 181: | ||
- | ==== Apprenons à construire une expression régulière "bashiste"==== | + | ==== Apprenons à construire une expression régulière==== |
<code bash> | <code bash> | ||
Ligne 199: | Ligne 202: | ||
</code> | </code> | ||
- | + | * Ou encore : | |
- | Ou encore : | + | |
<code bash> | <code bash> | ||
Ligne 237: | Ligne 239: | ||
Le nom de l'image correspond à l'expression rationnelle. | Le nom de l'image correspond à l'expression rationnelle. | ||
</code> | </code> | ||
- | ===explication=== | + | |
+ | * Explication : | ||
> '' ^ '' : début de l'expression | > '' ^ '' : début de l'expression |