Discussion:
[OT] Como puedo quitar decimales en shell bash
(demasiado antiguo para responder)
Jonatan Alballay
2008-10-22 16:10:15 UTC
Permalink
Listeros, nuevamente yo y mis famosos scripts, ahora necesito quitar los
decimales o por lo menos reducirlos a 1 o 2 de la siguiente línea

cat /proc/net/dev |grep eth0 |awk -F':' '{print $2}' |awk '{print"eth0: "
$1/1024/1024 " MB" " /" ,$9/1024/1024 " MB"}'

me muestra lo bajado y subido por la red, pero en bytes, ahi los estoy
convirtiendo a mega bytes pero me salen muchos decimales, como limito
esto?... si alguien me puede echar una manito estaria muy agradecido, de
ante mano muchas gracias a todos por la ayuda....
Manolo Díaz
2008-10-22 16:20:11 UTC
Permalink
El Wed, 22 Oct 2008 13:04:17 -0300
Post by Jonatan Alballay
Listeros, nuevamente yo y mis famosos scripts, ahora necesito quitar los
decimales o por lo menos reducirlos a 1 o 2 de la siguiente línea
cat /proc/net/dev |grep eth0 |awk -F':' '{print $2}' |awk '{print"eth0: "
$1/1024/1024 " MB" " /" ,$9/1024/1024 " MB"}'
me muestra lo bajado y subido por la red, pero en bytes, ahi los estoy
convirtiendo a mega bytes pero me salen muchos decimales, como limito
esto?... si alguien me puede echar una manito estaria muy agradecido, de
ante mano muchas gracias a todos por la ayuda....
Échale un vistazo a printf de coreutils.

Saludos.
--
Manolo Díaz
--
To UNSUBSCRIBE, email to debian-user-spanish-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Santiago Vila
2008-10-22 16:40:09 UTC
Permalink
Post by Jonatan Alballay
Listeros, nuevamente yo y mis famosos scripts, ahora necesito quitar los
decimales o por lo menos reducirlos a 1 o 2 de la siguiente línea
cat /proc/net/dev |grep eth0 |awk -F':' '{print $2}' |awk '{print"eth0: "
$1/1024/1024 " MB" " /" ,$9/1024/1024 " MB"}'
me muestra lo bajado y subido por la red, pero en bytes, ahi los estoy
convirtiendo a mega bytes pero me salen muchos decimales, como limito
esto?... si alguien me puede echar una manito estaria muy agradecido, de
ante mano muchas gracias a todos por la ayuda....
En AWK tienes la función int, que hace la parte entera.

También en AWK tienes la función printf para imprimir con el número de
decimales que necesites.

[ Por favor desactiva el HTML en tu programa de correo, con el mensaje
como texto ya tenemos suficiente ].
mariodebian
2008-10-22 16:50:12 UTC
Permalink
Post by Jonatan Alballay
Listeros, nuevamente yo y mis famosos scripts, ahora necesito quitar
los decimales o por lo menos reducirlos a 1 o 2 de la siguiente línea
cat /proc/net/dev |grep eth0 |awk -F':' '{print $2}' |awk
'{print"eth0: " $1/1024/1024 " MB" " /" ,$9/1024/1024 " MB"}'
me muestra lo bajado y subido por la red, pero en bytes, ahi los estoy
convirtiendo a mega bytes pero me salen muchos decimales, como limito
esto?... si alguien me puede echar una manito estaria muy agradecido,
de ante mano muchas gracias a todos por la ayuda....
awk tiene las funciones int, float...

cat /proc/net/dev |grep eth0 | \
awk -F':' '{print $2}' | \
awk '{print"eth0: " int($1/1024/1024) " MB"\
" /" ,int($9/1024/1024) " MB"}'


Con eso ya no tienes decimales....

Si quieres dos decimales multiplicas por 100 sacas el int y divides por
100

Saludos
--
http://soleup.eup.uva.es/mariodebian
Pablo Jiménez
2008-10-23 18:20:10 UTC
Permalink
Post by mariodebian
Post by Jonatan Alballay
Listeros, nuevamente yo y mis famosos scripts, ahora necesito quitar
los decimales o por lo menos reducirlos a 1 o 2 de la siguiente línea
cat /proc/net/dev |grep eth0 |awk -F':' '{print $2}' |awk
'{print"eth0: " $1/1024/1024 " MB" " /" ,$9/1024/1024 " MB"}'
me muestra lo bajado y subido por la red, pero en bytes, ahi los estoy
convirtiendo a mega bytes pero me salen muchos decimales, como limito
esto?... si alguien me puede echar una manito estaria muy agradecido,
de ante mano muchas gracias a todos por la ayuda....
awk tiene las funciones int, float...
cat /proc/net/dev |grep eth0 | \
awk -F':' '{print $2}' | \
awk '{print"eth0: " int($1/1024/1024) " MB"\
" /" ,int($9/1024/1024) " MB"}'
Con eso ya no tienes decimales....
Aplicar grep cuando usas awk no tiene sentido:

$ sed 's/:/& /' /proc/net/dev | \
awk '/eth/ { print $1, int($2/1024^2) "MB/" int($10/1024^2) "MB" }'

Saludos.
--
Pablo Jiménez
--
To UNSUBSCRIBE, email to debian-user-spanish-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Loading...