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 [06/07/2014 11:11] Hypathie [Correspondance de motifs avec les globs étendus] |
doc:programmation:shells:bash-vii-globs-etendus-regex [07/07/2014 12:12] Hypathie [Correspondance de motifs avec les expressions rationnelles] |
||
---|---|---|---|
Ligne 63: | Ligne 63: | ||
shopt -s extglob | shopt -s extglob | ||
</code> | </code> | ||
- | Valider puis dans le même terminal : | + | Valider ensuite toujours dans le même terminal : |
<code user> | <code user> | ||
ls ~/Test/!(*jpg|*bmp) | ls ~/Test/!(*jpg|*bmp) | ||
</code> | </code> | ||
- | Retour : | ||
<code> | <code> | ||
/home/hypathie/Test/nom.txt | /home/hypathie/Test/nom.txt | ||
Ligne 76: | Ligne 75: | ||
<code user> | <code user> | ||
cd ~/Test/ | cd ~/Test/ | ||
- | ~/Test$ ls | + | </code> |
+ | PUIS : | ||
+ | <code user> | ||
+ | ls | ||
</code> | </code> | ||
Retour : | Retour : | ||
Ligne 86: | Ligne 88: | ||
echo !(*jpg|*bmp) | echo !(*jpg|*bmp) | ||
</code> | </code> | ||
- | Retour : | ||
<code> | <code> | ||
nom.txt | nom.txt | ||
Ligne 116: | Ligne 117: | ||
fi | fi | ||
</code> | </code> | ||
- | Retour : | ||
<code> | <code> | ||
mauvaise correspondance | mauvaise correspondance | ||
Ligne 187: | Ligne 187: | ||
done | done | ||
</code> | </code> | ||
- | |||
- | Retour | ||
<code> | <code> | ||
1234567 ne correspond pas à 9 nombres | 1234567 ne correspond pas à 9 nombres | ||
Ligne 210: | Ligne 208: | ||
echo "pas de match" | echo "pas de match" | ||
fi | fi | ||
- | |||
- | # retour : match | ||
</code> | </code> | ||
+ | <code> | ||
+ | match | ||
+ | </code> | ||
===Compliquons un peu en utilisant plusieurs autres caractères du tableau ci-dessus :=== | ===Compliquons un peu en utilisant plusieurs autres caractères du tableau ci-dessus :=== | ||
Ligne 230: | Ligne 228: | ||
echo "mauvaise regex" | echo "mauvaise regex" | ||
fi | fi | ||
- | |||
- | # retour : Le nom de l'image correspond à l'expression rationnelle. | ||
</code> | </code> | ||
+ | <code> | ||
+ | Le nom de l'image correspond à l'expression rationnelle. | ||
+ | </code> | ||
===explication=== | ===explication=== | ||
Ligne 269: | Ligne 267: | ||
</note> | </note> | ||
- | ====4) un petit script pour s'exercer au ER==== | + | ====4) un script pour s'exercer au ER==== |
- | **Voici un petit script "exp.reg1" qui regroupe les notions étudiées jusqu'à présent.**\\ | + | Voici un script "exp.reg1" ; il a pour but de s'exercer aux expressions régulières.\\ |
- | Il a pour but de s'exercer aux expressions régulières.\\ | + | |
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
Ligne 315: | Ligne 313: | ||
# ligne 33 (if) : $? (code de retour) -eq (égal à) zéro (pas d'erreur de sortie, donc bonne correspondance) | # ligne 33 (if) : $? (code de retour) -eq (égal à) zéro (pas d'erreur de sortie, donc bonne correspondance) | ||
</code> | </code> | ||
+ | Lancez-le comme ci-dessous, explications détaillées dans le retour :\\ | ||
- | **Lancez-le ainsi (explications détaillées dans le retour) :**\\ | ||
- | (en considérant que le dossier parent de ce script figure dans $PATH, après modification du fichier ~/.bashrc\\ | ||
- | voir : [[atelier:chantier:debuter-avec-les-scripts-shell-bash#executer-son-script-depuis-n-importe-ou|3) Exécuter son script depuis n'importe où !]]) | ||
<code user> | <code user> | ||
- | exp.reg1 "^[a-b]" "abc" "ABC" # ER comme premier argument et le ou les chaînes à vérifier en second, troisième, etc. | + | ./exp.reg1 "^[a-b]" "abc" "ABC" |
</code> | </code> | ||
+ | >La ER comme premier argument de "exp.reg1", puis le ou les chaînes à vérifier en second, troisième, etc. argument de "exp.reg1". | ||
+ | |||
+ | Et voilà :-) | ||
+ | **Un grand merci à captnfab pour conseils avisés et toutes ses corrections.** | ||
=====INDEX ===== | =====INDEX ===== | ||
====1) rappel des principaux caractères des expressions rationnelles ==== | ====1) rappel des principaux caractères des expressions rationnelles ==== |