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:56] Hypathie [Correspondance de motifs avec les expressions rationnelles] |
doc:programmation:shells:bash-vii-globs-etendus-regex [09/07/2014 11:29] Hypathie [Correspondance de motifs avec les expressions rationnelles] |
||
---|---|---|---|
Ligne 63: | Ligne 63: | ||
Notons l'option shopt -s nocasematch (bash version 3.1) permet de retirer la sensibilité à la case. | Notons l'option shopt -s nocasematch (bash version 3.1) permet de retirer la sensibilité à la case. | ||
- | ====Les globs étendus dans le terminal==== | + | ====Les globs étendus dans le terminal==== |
- | Par exemple, prenons un fichier de type répertoire nommé "Test" contenant les fichiers : image.bmp image.jpg nom.txt | + | |
+ | ===Préparation=== | ||
+ | <code user> | ||
+ | mkdir Test && cd Test && touch image.bmp image.jpg nom.txt && cd .. | ||
+ | </code> | ||
+ | >Création d'un fichier de type répertoire nommé "Test", contenant les fichiers : image.bmp image.jpg nom.txt | ||
+ | |||
+ | ===Exercice=== | ||
<code user> | <code user> | ||
shopt -s extglob | shopt -s extglob | ||
</code> | </code> | ||
- | Valider ensuite toujours dans le même terminal : | + | |
+ | >Pour les commandes qui suivent, il faut valider toujours dans le même terminal. | ||
<code user> | <code user> | ||
ls ~/Test/!(*jpg|*bmp) | ls ~/Test/!(*jpg|*bmp) | ||
</code> | </code> | ||
+ | |||
+ | >Cela signifie : liste-moi le ou les fichiers dont le nom ne comporte pas (''!'') | ||
+ | >soit "zéro ou plein de caractères" (''*'') puis ''jpg'' | ||
+ | >soit "zéro ou plein de caractères" (''*'') puis ''bmp'' | ||
+ | |||
<code> | <code> | ||
/home/hypathie/Test/nom.txt | /home/hypathie/Test/nom.txt | ||
</code> | </code> | ||
- | Ou encore avec le même exemple : | + | >C'est le chemin absolu (nom complet) du (ou des) autre(s) fichiers que ceux finissant par ''jpg'' ou ''bmp''. |
+ | |||
+ | * à propos de cet exemple : | ||
<code user> | <code user> | ||
cd ~/Test/ | cd ~/Test/ | ||
</code> | </code> | ||
- | PUIS : | + | |
<code user> | <code user> | ||
- | ls | + | ls !(*jpg|*bmp) |
- | </code> | + | |
- | Retour : | + | |
- | <code> | + | |
- | image.bmp image.jpg nom.txt | + | |
- | </code> | + | |
- | PUIS : | + | |
- | <code user> | + | |
- | echo !(*jpg|*bmp) | + | |
</code> | </code> | ||
+ | |||
<code> | <code> | ||
nom.txt | nom.txt | ||
</code> | </code> | ||
+ | |||
+ | >C'est le nom simplifié | ||
==== Les globs étendus dans les scripts==== | ==== Les globs étendus dans les scripts==== | ||
Ligne 178: | Ligne 189: | ||
| ''+'' | Correspond une ou plusieurs fois à l'élément précédent. Par exemple, ab + c correspond à "abc", "abbc", "abbbc", et ainsi de suite, mais pas "ac". | | | ''+'' | Correspond une ou plusieurs fois à l'élément précédent. Par exemple, ab + c correspond à "abc", "abbc", "abbbc", et ainsi de suite, mais pas "ac". | | ||
| ''|'' | Correspond à l'expression d'avant OU l'expression d'après l'opérateur. Par exemple, ''abc|def'' correspond à "abc" ou "def". | | | ''|'' | Correspond à l'expression d'avant OU l'expression d'après l'opérateur. Par exemple, ''abc|def'' correspond à "abc" ou "def". | | ||
- | | Et tous les caractères de [[doc:programmation:shell:regexp#les-ensembles-de-caracteres-possibles|les classes prédéfinies]]. |''[:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:space:] [:upper:] [:xdigit:]'' | | + | | Et toutes [[doc:programmation:shell:regexp#les-ensembles-de-caracteres-possibles|les classes prédéfinies]]. |''[:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:space:] [:upper:] [:xdigit:]'' | |