gawk - Consulta sobre sintaxis...
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
Reply to: