Suppression des zeros non significatifs d'une variable

Résolu/Fermé
tbeghain Messages postés 58 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 22 février 2021 - Modifié le 9 avril 2019 à 10:42
lEprofSonDkon Messages postés 211 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 8 octobre 2022 - 9 avril 2019 à 14:29
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

>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)
A voir également:

5 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
9 avril 2019 à 11:49
$ cat test.sh
#!/bin/bash
shopt -s extglob
var=0000001253; echo ${var##*(0)}
$ test.sh
1253
$
2
mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 7 748
9 avril 2019 à 10:41
Bonjour,

Effectivement ça ne marche pas. Tu peux supprimer les zéros de gauche avec
sed
:

#!/bin/bash 
var=0000001253
var=$(echo $var | sed -e "s/^0*//")
echo $var


Bonne chance
1
tbeghain Messages postés 58 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 22 février 2021 3
9 avril 2019 à 10:53
Bonjour,

Oui, ça, ça fonctionne. Merci bien. Mais n'empêche que j'aimerais comprendre ce qui fait que la commande directe ne fonctionne pas dans le script...
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
9 avril 2019 à 10:33
hello
ne pas exécuter le script par:
sh test.sh
0
tbeghain Messages postés 58 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 22 février 2021 3
9 avril 2019 à 10:40
Bonjour,

Euh !!! Mais comment exécuter le script alors ? De toute façon, je ne l'exécutais pas avec sh test.sh, mais test.sh tout court...
0
tbeghain Messages postés 58 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 22 février 2021 3
9 avril 2019 à 12:13
Bonjour,

Ouaip ! Ca marche aussi avec shopt. Merci bien .Je sais pas ce c'est que ce shopt. Je vais me renseigner.
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
9 avril 2019 à 13:14
dans la page man de bash, voir
Développement des noms de fichiers
....
Si l'option extglob du shell option est activée par la commande shopt plusieurs opérateurs de correspondance étendue sont reconnus. ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lEprofSonDkon Messages postés 211 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 8 octobre 2022 13
9 avril 2019 à 14:29
salut,

en bash :
echo $((10#$var))
0