[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Shell, comandos grep y awk



On Fri, 10 Sep 2004 20:33:11 +0200, Iñaki <ibc2@euskalnet.net> wrote:
> Hola a todos,
> 
> Estoy intentando pulir el tema de karamba de mi escritorio. Entro otras cosas
> tengo un campo para visualizar el total descargado de internet desde que se
> arrancó el sistema. Ahora mismo lo obtengo así:
> 
>  /sbin/ifconfig eth0 | grep 'RX byte' | awk '{print $7 $8}'
> 
> Y la salida de esta concatenación de comandos y tuberías es (a modo de
> ejemplo):
> 
>  (58.2MiB)
> ó
>  (750.5KiB)
> ó
>  (1.2GiB)
> 
> Lo que pretendo es quitar los paréntesis, la "i" de las unidades y separar el
> valor numérico de las unidades. Es decir:
> 
>  58.2 MB
>  750.5 KB
>  1.2 GB

Bueno, El sistema internacional de medidas Dice que se ha de emplear
GiB cuando son GiB y GB cuando son GB. Me explico: no es lo mismo 90º
que 90 radianes. Por lo que considero que es un mal cambio el quitar
la 'i'

Independientemente de ello, yo te recomendaría como se ha dicho que
usases perl para
todo el proceso. Perl se construyo para sustituir awk, sed y grep
(entre otros) y hacerlo todo de forma más sencilla.

Ahora no tengo ningun ifconfig ni ningun perl a mano (si dentro de un
rato no dan una
solución más simple de las que hay puestas te pongo mi solución), pero todo los
pipes se pueden sustituir por algo del estilo...

/sbin/ifconfig eth0 | perl -en "print if s/.*RX
byte'.*\(([0-9.]+)([KGM]iB)\).*/$1 $2\n/"

> ¿Alguna ayuda? Muchas gracias de antemano.

Yo aprendería un poquito de perl  ;-) 

http://www.merelo.net/tutoperl/indice.html (en una tarde podrás
entender y construir expresiones como la de arriba).



Reply to: