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 [13/08/2014 18:32] Hypathie [Les commandes expr et vi et les caractères spécifiques aux ERb] |
utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes [13/08/2014 18:37] Hypathie [Les expressions rationnelles basiques et les commandes GNU/Linux] |
||
---|---|---|---|
Ligne 680: | Ligne 680: | ||
</code> | </code> | ||
+ | ====La commande expr n'utilise que ERb==== | ||
+ | ===Préparation === | ||
+ | Soit le fichier "<nowiki>liste4-spec</nowiki>" : | ||
+ | <code user>cat liste4-spec</code> | ||
+ | <code> | ||
+ | gdd:a:aa:aaa:aaaa:aaaaaa:aaaaaaaa | ||
+ | T5c Kc5 T5 c E2* abcd 7 9Abcd | ||
+ | 7 1AAA.AAA.bcdef aBcd6a 123* | ||
+ | abc2356.99 | ||
+ | 73000|Savoie | ||
+ | 123456 | ||
+ | 1234567 | ||
+ | index-tel|04|Rhône-Alpe | ||
+ | -15 +36 5687 {15} exemple{36} | ||
+ | il y a un truc et un truc et encore un truc et une chose | ||
+ | choses et trucs ne font pas bon ménage | ||
+ | 123.3456.abc | ||
+ | trucschosetruc | ||
+ | tructructrucs | ||
+ | chosechosechose | ||
+ | </code> | ||
+ | ===Syntaxe === | ||
- | ====L'éditeur de texte vi n'utilise que les ERb ==== | + | expr chaîne-de-caractères : expression-rationnelle-basique |
+ | |||
+ | <note tip> | ||
+ | * La commande expr utilise l'opérateur **'':''** pour mettre en correspondance une chaîne de caractères avec une //ER//. | ||
+ | * Si le nombre de caractères de la chaîne correspond à l'ERb, alors expr affiche ce nombre à l'écran. | ||
+ | * Si la correspondance décrite ci-dessus est vraie, le code de retour est 0 (zéro). | ||
+ | * Si elle est fausse, expr retourne 0 (zéro) pour "zéro correspondance) et le code de retour est 1 (un). | ||
+ | * L'expression rationnelle est comparée par rapport au début de la variable, le caractère **''^''** est toujours implicite. | ||
+ | * Si une partie de l'expression rationnelle est mémorisée avec **''\( \)''** la commande expr affiche dans le terminal la partie correspondante. | ||
+ | |||
+ | |||
+ | </note> | ||
+ | |||
+ | ===Exemples === | ||
+ | * crochet, étoile, fin de ligne : | ||
+ | <code user>var=123</code> | ||
+ | <code user>expr "$var" : '[0-9]*$'</code> | ||
+ | <code> | ||
+ | 3 | ||
+ | </code> | ||
+ | |||
+ | >"3" ne doit pas être confondu avec un code de retour, c'est le nombre de caractères de la variable qui correspondent à //ER//. | ||
+ | |||
+ | <code user>echo $?</code> | ||
+ | <code> | ||
+ | 0 | ||
+ | </code> | ||
+ | |||
+ | >La correspondance est vraie : code de retour "0". | ||
+ | >La variable comporte bien 3 caractères 1, 2, et 3 et non le chiffre "123"; il s'agit d'une comparaison sur chaîne de caractères. | ||
+ | |||
+ | * ER qui ne correspond pas à la chaîne de la variable : | ||
+ | <code user>var="les bonbons, c'est bon"</code> | ||
+ | <code user>expr "$var" : 'bons\>'</code> | ||
+ | <code> | ||
+ | 0 | ||
+ | </code> | ||
+ | |||
+ | >zéro est le nombre de caractère correspondant | ||
+ | |||
+ | <code user>echo $?</code> | ||
+ | <code> | ||
+ | 1 | ||
+ | </code> | ||
+ | |||
+ | > Le chiffre "1" est le code de retour. | ||
+ | |||
+ | * sous chaîne avec caractère fin de mot : | ||
+ | <code user>var="les bonbons, c'est bon"</code> | ||
+ | <code user>expr "$var" : '\(.*bons\>\),'</code> | ||
+ | <code> | ||
+ | les bonbons | ||
+ | </code> | ||
+ | |||
+ | >Demander le code de retour est inutile, la ER est forcément juste, s'il y a affichage de la sous-chaîne correspondante. À moins d'en avoir besoin lors d'une utilisation de expr dans un script shell s'en servant pour un test. | ||
+ | |||
+ | |||
+ | ====L'éditeur de texte vi n'utilise aussi que les ERb ==== | ||
===Préparation === | ===Préparation === | ||
Ligne 804: | Ligne 883: | ||
Vi ou vim surligne à la ligne 9 (comportant "123.3456.abc") la sous-chaîne **''123.3456.''**. | Vi ou vim surligne à la ligne 9 (comportant "123.3456.abc") la sous-chaîne **''123.3456.''**. | ||
- | * utilisation de \| : | ||
- | <code>/c\|t</code> | ||
- | |||
- | ->Une image vaut mieux qu'une description :\\ | ||
- | {{http://pix.toile-libre.org/upload/original/1407937898.png?400}} | ||
- | |||
- | |||
- | ====La commande expr n'utilise que ERb==== | ||
- | ===Préparation === | ||
- | Soit le fichier "<nowiki>liste4-spec</nowiki>" : | ||
- | <code user>cat liste4-spec</code> | ||
- | <code> | ||
- | gdd:a:aa:aaa:aaaa:aaaaaa:aaaaaaaa | ||
- | T5c Kc5 T5 c E2* abcd 7 9Abcd | ||
- | 7 1AAA.AAA.bcdef aBcd6a 123* | ||
- | abc2356.99 | ||
- | 73000|Savoie | ||
- | 123456 | ||
- | 1234567 | ||
- | index-tel|04|Rhône-Alpe | ||
- | -15 +36 5687 {15} exemple{36} | ||
- | il y a un truc et un truc et encore un truc et une chose | ||
- | choses et trucs ne font pas bon ménage | ||
- | 123.3456.abc | ||
- | trucschosetruc | ||
- | tructructrucs | ||
- | chosechosechose | ||
- | </code> | ||
- | ===Syntaxe === | ||
- | |||
- | expr chaîne-de-caractères : expression-rationnelle-basique | ||
- | |||
- | <note tip> | ||
- | * La commande expr utilise l'opérateur **'':''** pour mettre en correspondance une chaîne de caractères avec une //ER//. | ||
- | * Si le nombre de caractères de la chaîne correspond à l'ERb, alors expr affiche ce nombre à l'écran. | ||
- | * Si la correspondance décrite ci-dessus est vraie, le code de retour est 0 (zéro). | ||
- | * Si elle est fausse, expr retourne 0 (zéro) pour "zéro correspondance) et le code de retour est 1 (un). | ||
- | * L'expression rationnelle est comparée par rapport au début de la variable, le caractère **''^''** est toujours implicite. | ||
- | * Si une partie de l'expression rationnelle est mémorisée avec **''\( \)''** la commande expr affiche dans le terminal la partie correspondante. | ||
- | |||
- | |||
- | </note> | ||
- | |||
- | ===Exemples === | ||
- | * crochet, étoile, fin de ligne : | ||
- | <code user>var=123</code> | ||
- | <code user>expr "$var" : '[0-9]*$'</code> | ||
- | <code> | ||
- | 3 | ||
- | </code> | ||
- | |||
- | >"3" ne doit pas être confondu avec un code de retour, c'est le nombre de caractères de la variable qui correspondent à //ER//. | ||
- | |||
- | <code user>echo $?</code> | ||
- | <code> | ||
- | 0 | ||
- | </code> | ||
- | |||
- | >La correspondance est vraie : code de retour "0". | ||
- | >La variable comporte bien 3 caractères 1, 2, et 3 et non le chiffre "123"; il s'agit d'une comparaison sur chaîne de caractères. | ||
- | |||
- | * ER qui ne correspond pas à la chaîne de la variable : | ||
- | <code user>var="les bonbons, c'est bon"</code> | ||
- | <code user>expr "$var" : 'bons\>'</code> | ||
- | <code> | ||
- | 0 | ||
- | </code> | ||
- | |||
- | >zéro est le nombre de caractère correspondant | ||
- | |||
- | <code user>echo $?</code> | ||
- | <code> | ||
- | 1 | ||
- | </code> | ||
- | |||
- | > Le chiffre "1" est le code de retour. | ||
- | |||
- | * sous chaîne avec caractère fin de mot : | ||
- | <code user>var="les bonbons, c'est bon"</code> | ||
- | <code user>expr "$var" : '\(.*bons\>\),'</code> | ||
- | <code> | ||
- | les bonbons | ||
- | </code> | ||
- | |||
- | >Demander le code de retour est inutile, la ER est forcément juste, s'il y a affichage de la sous-chaîne correspondante. À moins d'en avoir besoin lors d'une utilisation de expr dans un script shell s'en servant pour un test. | ||