Menu

Suppression des zeros non significatifs d'une variable [Résolu]

Messages postés
56
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
9 avril 2019
-
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)
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
28786
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
18 avril 2019
8023
1
Merci
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

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 40731 internautes nous ont dit merci ce mois-ci

tbeghain
Messages postés
56
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
9 avril 2019
2 -
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...
Commenter la réponse de mamiemando
Messages postés
17671
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
18 avril 2019
6063
1
Merci
$ cat test.sh
#!/bin/bash
shopt -s extglob
var=0000001253; echo ${var##*(0)}
$ test.sh
1253
$

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 40731 internautes nous ont dit merci ce mois-ci

Commenter la réponse de dubcek
Messages postés
17671
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
18 avril 2019
6063
0
Merci
hello
ne pas exécuter le script par:
sh test.sh
tbeghain
Messages postés
56
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
9 avril 2019
2 -
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...
Commenter la réponse de dubcek
Messages postés
56
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
9 avril 2019
2
0
Merci
Bonjour,

Ouaip ! Ca marche aussi avec shopt. Merci bien .Je sais pas ce c'est que ce shopt. Je vais me renseigner.
dubcek
Messages postés
17671
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
18 avril 2019
6063 -
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. ...
Commenter la réponse de tbeghain
Messages postés
126
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
17 avril 2019
5
0
Merci
salut,

en bash :
echo $((10#$var))
Commenter la réponse de lEprofSonDkon