El día 16 de enero de 2011 15:05, KZKG^Gaara
<kzkgga...@ipichcb.rimed.cu> escribió:

> Hola gente,
> Deseo saber en la terminal qué CPU tengo, datos como modelo de CPU, si es
> DualCore o Core2Duo, y velocidad.
> En el archivo /proc/cpuinfo está esta información, por lo que haciéndole un
> cat y con unos cuantos parámetros me lo devuelve ligeramente organizado:
>
> cat /proc/cpuinfo | grep "model name" -m1 | cut -d":" -f2 | cut -d" " -f2- |
> sed 's#Processor ##'
>
> El resultado es este:
> Intel(R) Core(TM)2 CPU         T7400  @ 2.16GHz
>
> El resultado como ven, tiene ese tremendo espacio en blanco en medio, además
> de que aparece "(R)" y "(TM)".
> Mi pregunta es...
> ¿Qué otros parámetros tendría que añadir para que, me salga esto?:
> Intel Core2 CPU  T7400  @ 2.16GHz

Según interpreto, deseas al final que no haya una secuencia de
espacios consecutivos de longitud mayor que 1. awk es una suerte de
grep+cut+sed.

moya@jessy:~$ awk -F': ' '/model name/ {gsub("\\(R\\)", "", $2);
gsub("\\(TM\\)", "", $2); gsub(" +", " ", $2); print $2; exit}'
/proc/cpuinfo
Intel Core2 Duo CPU P7350 @ 2.00GHz

Lo anterior dice, más o menos, el separador de campos es ': ' (así
queda en $2, segundo campo, lo que te interesa). Si hay un match con
/model name/ entonces ejecuta los gsub, imprime y termina.

Un cat al principio de un pipe list casi siempre sobra. Tu orden
podría escribirse como grep -- '...' /proc/cpuinfo | cut ... -- y así
evitabas el cat del principio.

Saludos
maykel

______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l

Responder a