Utilisation expressions régulières [Résolu]

Signaler
-
Messages postés
29767
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 avril 2021
-
Je n'arrive pas à faire fonctionner ce code, quelque chose m’échappe ..... Si quelqu'un a une idée, ce serait formidable!

#!/bin/bash
#15 octobre 2020

tel="033612345678"
echo $tel

if [[ "$tel" ==  033* ]]
then
    echo "téléphone Français"
else
 echo "indicatif inconnu"
fi

if [[ "$tel" == 033[1-9][0-9]* ]]
#if [[ "$tel" == ^033[1-9]{1}[0-9]{8}$ ]]
then
     echo "tel valide"
else
 echo "tel invalide"
fi

2 réponses

Messages postés
29767
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 avril 2021
7 077
Bonjour,

Je suis d'accord avec les remarques de zipe31, essaye de faire attention à l'avenir.

Tu ne peux pas faire un test d'égalité entre une chaîne et une expression régulière, ce sont deux types différents, donc pas comparables. Il faut passer ton expression régulière à grep et regarder ce que retourne
grep
. Voir exemple.

if echo "033612345678" | grep -q "033[1-9][0-9]*"; then
  echo ":)"
fi


Bonne chance
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 130
Salut mamie,
Tu ne peux pas faire un test d'égalité entre une chaîne et une expression régulière
Si si ;-))

D'ailleurs l'emploi des doubles crochets pour un test est la bonne solution :



Une doc en anglais sur le sujet.
>
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021

Merci beaucoup, je vais regarder ça de près.
Messages postés
29767
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 avril 2021
7 077 >
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021

Décidément le shell, c'est encore plus sale que ce que je croyais :-)
merci beaucoup mamie : ça fonctionne avec egrep, je vais encore creuser ...... Mille fois merci!
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 130
Bonjour¹ !

Petit rappel…

À afficher du code, autant le mettre en valeur entre balises adéquates (<code>…</code>) et tant qu'à faire expliquer un tant soit peu ce qu'on cherche à faire avec ce code, tout le monde n'est pas à même de décoder un script quel qu'il soit.



¹ Ce n'est pas en option !