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

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



Hola (disculpas por el top-posting):

Descubrí el problema con awk.

En lugar de match($3,".") hay que usar match($3,"\\."), evidentemente el punto es un caracter reservado o algo por el estilo, por lo tanto hay que "escaparlo". Lo había intentado con una sola \, pero finalmente averigüé que era con dos: \\

Saludos !


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.

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

Avisame para ayudarte.

Saludos y Exito




--
Johnnatan Malpica




--

Walter O. Dari

http://swcomputacion.com/
skype: waomda


Reply to: