Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
0 devant la virgule ( bc )
Envoyé par: phenix

Bonjour J'ai un script avec bc mais il me mange le zero devant la virgule

echo "scale=1; 1/-2 " | bc
-.5

Comment afficher -0.5 ?
C'est pour avoir un bel affichage, en fait bc calcule une moyenne de temperatures et j'aime pas voir -.2°C


$ uptime
19:28:06 up 12 days, 20:46,  2 users,  load average: 213.96, 212.37, 208.44

Poste le Wednesday 13 December 2006 21:10:13
Répondre     Citer    
Re: 0 devant la virgule ( bc )

avec la commande printf par exemple
num=$(echo "scale=1; 1/-2 " | bc)
printf "moyenne %.3f\n" $num
affiche
moyenne -0.500



----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Wednesday 13 December 2006 21:26:37
Répondre     Citer    
Re: 0 devant la virgule ( bc )
Envoyé par: phenix

ok, merci beaucoup

Sur ma config cet exemple de marche pas directement car printf veut une virgule et pas un point comme séparateur décimal.

tr "." ","

règle l'affaire, mais c'est pas trés propre :-)

$ uptime
19:28:06 up 12 days, 20:46,  2 users,  load average: 213.96, 212.37, 208.44

Poste le Wednesday 13 December 2006 21:39:43
Répondre     Citer    
Re: 0 devant la virgule ( bc )
Envoyé par: merlin8282

Je n'ai jamais utilisé sed mais comme j'en vois parfois des exemples je suppose que ça doit marcher aussi.
Par exemple j'ai pensé à un truc dans le genre s/\./0\.

.:! L'être humain est au sommet de la chaîne alimentaire. Certes. Mais il est surtout au sommet de la connerie et de la bêtise... !:.
-- Pour les nouveaux linuxiens : Ce n'est pas en continuant de faire ce que l'on connaît que l'on pourra faire ce que l'on ne connaît pas --

Poste le Thursday 14 December 2006 07:20:36
Répondre     Citer    
Re: 0 devant la virgule ( bc )
Envoyé par: phenix

j'ai pas vraiment compris ce que tu veux montrer

sed et awk sont mes lacunes du shell

$ uptime
19:28:06 up 12 days, 20:46,  2 users,  load average: 213.96, 212.37, 208.44

Poste le Thursday 14 December 2006 18:30:29
Répondre     Citer    
Re: 0 devant la virgule ( bc )
Envoyé par: merlin8282

En gros, remplacer les points "." par "0." .

.:! L'être humain est au sommet de la chaîne alimentaire. Certes. Mais il est surtout au sommet de la connerie et de la bêtise... !:.
-- Pour les nouveaux linuxiens : Ce n'est pas en continuant de faire ce que l'on connaît que l'on pourra faire ce que l'on ne connaît pas --

Poste le Thursday 14 December 2006 19:53:28
Répondre     Citer    
Re: 0 devant la virgule ( bc )
Envoyé par: phenix

Quand il ferra 18.2 °C il va afficher 180.2°C ?


:~$ echo 0.1 | sed "s/\./0\."
sed: -e expression n°1, caractère 8: commande `s' inachevée


$ uptime
19:28:06 up 12 days, 20:46,  2 users,  load average: 213.96, 212.37, 208.44

Poste le Friday 15 December 2006 07:34:18
Répondre     Citer    
Re: 0 devant la virgule ( bc )
Envoyé par: merlin8282

Citation
phenix
Quand il ferra 18.2 °C il va afficher 180.2°C ?
Hum, il suffirait de faire avec l'espace précédant alors, genre remplacer " ." par " 0." .

Citation
phenix
:~$ echo 0.1 | sed "s/\./0\."
sed: -e expression n°1, caractère 8: commande `s'
inachevée
Comme dit, je n'ai jamais utilisé sed.

.:! L'être humain est au sommet de la chaîne alimentaire. Certes. Mais il est surtout au sommet de la connerie et de la bêtise... !:.
-- Pour les nouveaux linuxiens : Ce n'est pas en continuant de faire ce que l'on connaît que l'on pourra faire ce que l'on ne connaît pas --

Poste le Friday 15 December 2006 13:51:27
Répondre     Citer    
Re: 0 devant la virgule ( bc )
Envoyé par: phenix

la solution de basile est quand même la plus simple, quand la chiffre est entre -1 et 0 je suis alors embêté, non ?

$ uptime
19:28:06 up 12 days, 20:46,  2 users,  load average: 213.96, 212.37, 208.44

Poste le Friday 15 December 2006 14:38:30
Répondre     Citer    
Re: 0 devant la virgule ( bc )
Envoyé par: twocats

sed 's/^\./0\./; s/^-\./-0\./'
];-)

-------------------
La réponse est 42

Poste le Friday 15 December 2006 14:41:28
Répondre     Citer    
Re: 0 devant la virgule ( bc )
Envoyé par: phenix

bravo, cette commande fonctionne:chef:

$ uptime
19:28:06 up 12 days, 20:46,  2 users,  load average: 213.96, 212.37, 208.44

Poste le Friday 15 December 2006 20:29:55
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
0 devant la virgule ( bc )
Posez dans ce forum les questions qui ne trouvent pas place dans les autres...

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons