Suppression des zeros non significatifs d'une variable
Résolu
tbeghain
Messages postés
63
Statut
Membre
-
lEprofSonDkon Messages postés 227 Statut Membre -
lEprofSonDkon Messages postés 227 Statut Membre -
Bonjour,
Je rebondis sur une demande identique faite il y a longtemps. J'ai le même problème (je veux supprimer les 0 non significatifs devant une variable alphanumérique qui ne contient que des chiffres).
J'ai repris exactement l'exemple qui avait été donné à l'époque
Si j'applique la solution préconisée, directement à partir de la ligne de commande, ça fonctionne
Par contre, dès le moment où je le mets dans un script shell, je n'ai pas du tout le résultat attendu :
Bon, je suis en Linux CentOS7. Ça doit être tout con. Peut être il manque quelque chose....
Merci pour vos réponses
Je rebondis sur une demande identique faite il y a longtemps. J'ai le même problème (je veux supprimer les 0 non significatifs devant une variable alphanumérique qui ne contient que des chiffres).
J'ai repris exactement l'exemple qui avait été donné à l'époque
Si j'applique la solution préconisée, directement à partir de la ligne de commande, ça fonctionne
>var=0000001253; echo ${var##*(0)}
1253
Par contre, dès le moment où je le mets dans un script shell, je n'ai pas du tout le résultat attendu :
>cat test.sh
#!/bin/bash
var=0000001253; echo ${var##*(0)}
>test.sh
0000001253
Bon, je suis en Linux CentOS7. Ça doit être tout con. Peut être il manque quelque chose....
Merci pour vos réponses
Configuration: CentOS Linux release 7.5.1804 (Core)
5 réponses
-
$ cat test.sh
#!/bin/bash
shopt -s extglob
var=0000001253; echo ${var##*(0)}
$ test.sh
1253
$ -
Bonjour,
Effectivement ça ne marche pas. Tu peux supprimer les zéros de gauche avecsed
:
#!/bin/bash var=0000001253 var=$(echo $var | sed -e "s/^0*//") echo $var
Bonne chance -
hello
ne pas exécuter le script par:sh test.sh
-
Bonjour,
Ouaip ! Ca marche aussi avec shopt. Merci bien .Je sais pas ce c'est que ce shopt. Je vais me renseigner. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -