gawk - Consulta sobre sintaxis...

2013-01-04 Por tema Walter O. Dari

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-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/50e7b6e7.60...@gmail.com



Re: gawk - Consulta sobre sintaxis...

2013-01-04 Por tema Johnnatan Malpica
2013/1/5 Walter O. Dari wlin...@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-requ...@lists.debian.org
 with a subject of unsubscribe. Trouble? Contact
 listmas...@lists.debian.org
 Archive: http://lists.debian.org/50e7b6e7.60...@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


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/cadwbpju+yvw5rmoyktujm7-3w35fpmnjx_doy-49ld5jqxp...@mail.gmail.com



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

2013-01-04 Por tema Walter O. Dari

Hola Johnnatan...

El 05/01/13 02:23, Johnnatan Malpica escribió:

2013/1/5 Walter O. Dariwlin...@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-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact
listmas...@lists.debian.org
Archive: http://lists.debian.org/50e7b6e7.60...@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


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/50e7bb69.7040...@gmail.com



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

2013-01-04 Por tema Walter O. Dari

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. Dariwlin...@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-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact
listmas...@lists.debian.org
Archive: http://lists.debian.org/50e7b6e7.60...@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


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/50e7d116.8080...@gmail.com