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