Bonjour,
Je voudrais tester si une chaine de caractères ne contient que des espaces dans mon script shell.
Quelqu'un a t'il une idée ?
Bonjour,
Je voudrais tester si une chaine de caractères ne contient que des espaces dans mon script shell.
Quelqu'un a t'il une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo $CHAINE | sed -e "s/\ /a/" ; if [ $? -eq 1 ];then echo 'pas de spaces'
Ok, mais je veux tester que la chaine ne contient que des espaces.
Bonjour,
Voici unhe solution avec grep
et une aute avec sed
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @ubuntu:/tmp$ export t=" d " @ubuntu:/tmp$ if (echo $t | grep "^ *$" > /dev/null); then echo "ok"; else echo "pas ok"; fi pas ok @ubuntu:/tmp$ export t=" " @ubuntu:/tmp$ if (echo $t | grep "^ *$" > /dev/null); then echo "ok"; else echo "pas ok"; fi ok
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 @ubuntu:/tmp$ export t=" dd " @ubuntu:/tmp$ espaces=$(echo $t | sed -e "s/ //g") @ubuntu:/tmp$ if [ -z "$espaces" ] ; then echo "ok"; else echo "pas ok"; fi pas ok @ubuntu:/tmp$ export t=" " @ubuntu:/tmp$ espaces=$(echo $t | sed -e "s/ //g") @ubuntu:/tmp$ if [ -z "$espaces" ] ; then echo "ok"; else echo "pas ok"; fi
une solution en bash
Code : Sélectionner tout - Visualiser dans une fenêtre à part [ "$chaine" != "${chaine// /}" ] && echo "espaces"
Ok, j'ai essayé ta solution narmataru et ça marche très bien.
Merci bcp.
Il suffit qu'il y ait un espace pour que la condition [ ... ] soit vraie. Pour que ça marche avec la suppression des espaces de ton expansion de variable ${...} il faudrait comparer les longueurs.Envoyé par becket
Il me semble que grep soit plus approprié.
Une variante avec grep:
Option -v inverse le résultat de grep
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo $chaine | grep -vq '[^ ]' && echo "Ne contient que des espaces"
Option -q renvoi 0 ou 1 au lieu de la sortie standard
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager