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

Re: gawk - Consulta sobre sintaxis... *** SOLUCIONADO CON cut ***



Hola Johnnatan...

El 05/01/13 02:23, Johnnatan Malpica escribió:
2013/1/5 Walter O. Dari<wlinuxw@gmail.com>:
Hola gente:

Buen año para todos antes que nada.

Resulta que quiero aislar el entero de la temperatura que me arroja el
comando sensors para los distintos cores...

wodari@debi5:~$ sensors | grep Core
Core 0:         +38.0°C  (high = +80.0°C, crit = +99.0°C)
Core 1:         +40.0°C  (high = +80.0°C, crit = +99.0°C)
Core 2:         +41.0°C  (high = +80.0°C, crit = +99.0°C)
Core 3:         +46.0°C  (high = +80.0°C, crit = +99.0°C)

... tomando de a una línea por vez ...

wodari@debi5:~$ sensors | grep "Core 0"
Core 0:         +38.0°C  (high = +80.0°C, crit = +99.0°C)

De la línea de arriba me interesa sólo el valor entero 37.

Con...

wodari@debi5:~$ sensors | grep "Core 0" | gawk '//{print $3}'

... obtengo   +38.0°C

A lo bruto, y presuponiendo que el valor va ha ser siempre de 2 dígitos, la
hacía así...

wodari@debi5:~$ sensors | grep "Core 0" | gawk '//{print substr($3,2,2)}'
38

... pero me parece más prolijo ubicar el "+" y el "." y obtener lo que queda
dentro.

Entonces hice lo siguiente...

wodari@debi5:~$ sensors | grep "Core 0" | gawk '//{print
substr($3,match($3,"+")+1,2)}'
38

... ubicando la posición del "+", sumo 1 y desde ahí se que está la
temperatura y tomo los 2 dígitos. Pero quisiera mejorarlo y obtener la
posición del "." porque si el valor fuera de 1 dígito o 3 dígitos esto ya no
funcionaría. Y aquí se me presenta el problema, cuando busco el "." con
match($3,".") me devuelve el valor 1 y en realidad debería ser 4. Supongo
que debe ser un problema en la forma de indicarle el punto. ¿llevará algún
otro tipo de comillas para que lo interprete?
A cualquiera de los otros caracteres de la cadena "+38.0°C" los ubica bien,
con el "." no hay caso.


Bueno, espero que me entiendan y me den alguna idea.

Anticipadas gracias y saludos.


--

Walter O. Dari

http://swcomputacion.com/
skype: waomda


--
To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact
listmaster@lists.debian.org
Archive: [🔎] 50E7B6E7.60802@gmail.com">http://lists.debian.org/[🔎] 50E7B6E7.60802@gmail.com


Hola a todos y feliz año tambien..

He contribuido poco en la lista..

Yo lo haria de esta forma:

sensors | cut -d "." -f 1 | cut -d "+" -f 2

Si no resuelve tu problema. disculpa.. pues no te comprendí bien y
esto hace lo que pides y es lo que se me ha ocurrido.

sensors | grep "Core 0" | cut -d "." -f 1 | cut -d "+" -f 2

Perfecto, te agradezco mucho.

Mis disculpas a todos si no bindo solución a tu problema.. pues no
recuerdo si especificamente querias emplear awk

No hay problemas, pero me gustaría saber porque me "falla" awk con el tema del punto.


La realidad es que estoy creando unas métricas para ganglia y para obtener el espacio libre de algunas particiones estaba usando awk, es mucho más sencillo porque la cantidad de bloques es un número entero sin más ni más. Pero con la temperatura se me había complicado por los caracteres adicionales a los números: "+.Cº".

Avisame para ayudarte.

Ya me has ayudado.


Saludos y Exito

Muchas gracias nuevamente y saludos !


--
Johnnatan Malpica



--

Walter O. Dari

http://swcomputacion.com/
skype: waomda


Reply to: