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 -- 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/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 ***
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 ***
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