Formater un nombre avec des 0 en shell Unix
Résolu/Fermé
tbeghain
Messages postés
58
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
22 février 2021
-
27 sept. 2007 à 15:08
eko - 21 avril 2009 à 13:49
eko - 21 avril 2009 à 13:49
A voir également:
- Formater un nombre avec des 0 en shell Unix
- Comment formater un pc - Guide
- Mettre un 0 devant un nombre dans excel - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Formater un pc bloqué par administrateur - Guide
- Formater clé usb mac - Guide
8 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
27 sept. 2007 à 15:27
27 sept. 2007 à 15:27
Salut,
[tmpfs]$ for i in $(seq 10); do printf "%02d\n" "$i"; done 01 02 03 04 05 06 07 08 09 10;-))
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 sept. 2007 à 15:27
27 sept. 2007 à 15:27
Salut,
il y a la commande printf
il y a la commande printf
root@debian:~# for i in $(seq 20);do printf "%02d\n" $i;done 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
Gotrune
Messages postés
55
Date d'inscription
mardi 5 décembre 2006
Statut
Membre
Dernière intervention
8 novembre 2008
3
27 sept. 2007 à 15:20
27 sept. 2007 à 15:20
tu peut essayer un code du type:
'0'&$1
'0'&$1
tbeghain
Messages postés
58
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
22 février 2021
3
27 sept. 2007 à 15:37
27 sept. 2007 à 15:37
Merci beaucoup, le printf fait très exactement ce que je voulais
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tbeghain
Messages postés
58
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
22 février 2021
3
27 sept. 2007 à 17:36
27 sept. 2007 à 17:36
Désolé, mais j'ai un petit truc bizarre avec le printf avec les chiffres 8 et 9 exclusivement
En exécutant le script suivant :
AA=` printf "%02d\n" "07" `
echo $AA
AA=` printf "%02d\n" "08" `
echo $AA
AA=` printf "%02d\n" "09" `
echo $AA
AA=` printf "%02d\n" "10" `
echo $AA
AA=` printf "%02d\n" "7" `
echo $AA
AA=` printf "%02d\n" "8" `
echo $AA
AA=` printf "%02d\n" "9" `
echo $AA
J'ai les résultats suivant
07
printf: 08 not completely converted
00
printf: 09 not completely converted
00
10
07
08
09
Pourquoi le 08 et le 09 ne passent pas ????? alors que tous les autres chiffres passent ???? Est-ce dû à mon Unix ? Qui m'a marabouté lle 8 et le 9 ?
En exécutant le script suivant :
AA=` printf "%02d\n" "07" `
echo $AA
AA=` printf "%02d\n" "08" `
echo $AA
AA=` printf "%02d\n" "09" `
echo $AA
AA=` printf "%02d\n" "10" `
echo $AA
AA=` printf "%02d\n" "7" `
echo $AA
AA=` printf "%02d\n" "8" `
echo $AA
AA=` printf "%02d\n" "9" `
echo $AA
J'ai les résultats suivant
07
printf: 08 not completely converted
00
printf: 09 not completely converted
00
10
07
08
09
Pourquoi le 08 et le 09 ne passent pas ????? alors que tous les autres chiffres passent ???? Est-ce dû à mon Unix ? Qui m'a marabouté lle 8 et le 9 ?
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
27 sept. 2007 à 19:24
27 sept. 2007 à 19:24
Je te rassure sous GNU/Linux j'ai exactement le même problème et je ne sais pas pourquoi !?
j'ai bien essayé toutes les formes de "quotationnage" en tous genres (simple, double, avec, sans, etc.) et rien n'y fait !!!
Même sans passer par une variable, en ligne de commande pure, ça plante ;-((
Toutes solutions, pistes ou début d'explication seront les bienvenus.
Merci.
j'ai bien essayé toutes les formes de "quotationnage" en tous genres (simple, double, avec, sans, etc.) et rien n'y fait !!!
Même sans passer par une variable, en ligne de commande pure, ça plante ;-((
Toutes solutions, pistes ou début d'explication seront les bienvenus.
Merci.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 sept. 2007 à 20:02
27 sept. 2007 à 20:02
Salut,
essaie ça
essaie ça
lami20j@debian:~$ cat ccm.sh #!/bin/bash AA=` printf "%02.f\n" "07" ` echo $AA AA=` printf "%02.f\n" "08" ` echo $AA AA=` printf "%02.f\n" "09" ` echo $AA AA=` printf "%02.f\n" "10" ` echo $AA AA=` printf "%02.f\n" "7" ` echo $AA AA=` printf "%02.f\n" "8" ` echo $AA AA=` printf "%02.f\n" "9" ` echo $AA lami20j@debian:~$ sh ccm.sh 07 08 09 10 07 08 09
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
27 sept. 2007 à 20:07
27 sept. 2007 à 20:07
Espèce de matheux ;-))
Merci.
Merci.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 sept. 2007 à 20:12
27 sept. 2007 à 20:12
Quand on écrit 01,02 ... 08,09 les nombres sont interprétés en octal
en octal 8 = 10 et 9 = 11
Un nombre en octal ne peux pas contenir que les chiffres jusqu'à 7 compris
en revanche quand on écrit 8 et 9 ce sont des nombre décimales donc je peux faire une conversion en octal
en octal 8 = 10 et 9 = 11
Un nombre en octal ne peux pas contenir que les chiffres jusqu'à 7 compris
lami20j@debian:~$ printf "%o et %o et %o\n" 0777 777 521 777 et 1411 et 1011 lami20j@debian:~$
en revanche quand on écrit 8 et 9 ce sont des nombre décimales donc je peux faire une conversion en octal
lami20j@debian:~$ printf "%o et %o\n" 8 9 10 et 11
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
27 sept. 2007 à 20:27
27 sept. 2007 à 20:27
Merci bien lami20j ;-))
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
27 sept. 2007 à 20:30
27 sept. 2007 à 20:30
de rien :-))
eko
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
21 avril 2009 à 13:49
21 avril 2009 à 13:49
j'aurais besoin d'aide j'ai le meme probleme sauf que moi je voudrais le faire avec des nombres en base 16
merci d'avance
merci d'avance
27 sept. 2007 à 15:30
C’est au niveau supérieur, de la télépathie par exemple ;-))
27 sept. 2007 à 15:58
Mais il y a du avoir des interférences, j'ai pas bien perçu le "20" ;-DDDDD