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

Signaler
-
Messages postés
29456
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
30 novembre 2020
-
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
29456
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
30 novembre 2020
6 984
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
35915
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 690
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
35915
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
30 novembre 2020

Merci beaucoup, je vais regarder ça de près.
Messages postés
29456
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
30 novembre 2020
6 984 >
Messages postés
35915
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
30 novembre 2020

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
35915
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 690
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 !