Escribí el siguiente comando de shell para generar la velocidad del reloj de la CPU como un número entero:
grep -m 1 'cpu MHz' /proc/cpuinfo | grep -o -E '[0-9]+'
PRODUCCIÓN:
900
063
Esto se debe a que la velocidad exacta del reloj es 900.063. Básicamente, quiero que el comando devuelva la parte 900 pero no la parte después del decimal (.063).
Cualquier ayuda es muy apreciada, gracias.
Respuesta1
Esto podría ser más fácil de hacer en awk:
awk -F: '/cpu MHz/ {print int($2); exit}' /proc/cpuinfo
-F:
- dividido en:
/cpu MHz/
en líneas coincidentescpu MHz
, haga:{print int($2); exit}'
- convierte el segundo campo a un número entero, lo imprime y sale (para que solo obtengamos la primera coincidencia)
Respuesta2
Hay muchas posibilidades. Aqui hay otro más:
grep -m 1 'cpu MHz' /proc/cpuinfo | cut -f2 -d: | cut -f1 -d.
Respuesta3
A continuación se muestra intentar
dominio
sed -n '/cpu MHz/s/.*://p' /proc/cpuinfo | sed "s/\..*//g"
método awk
awk -F ":" '/cpu MHz/{gsub(/\..*/,"",$NF);print $NF}' /proc/cpuinfo
pitón
#!/usr/bin/python
import re
k=re.compile(r'cpu MHz')
m=open('/proc/cpuinfo','r')
for i in m:
if re.search(k,i):
print i.split(":")[-1].split(".")[0]
Respuesta4
Con grep
:
grep -om1 'cpu MHz[^.]*' /proc/cpuinfo | grep -o '[[:digit:]]*'
Obtenga la línea sin el punto y los siguientes caracteres, luego grep
los dígitos.
Si admite grep
expresiones regulares compatibles con Perl (PCRE):
grep -oPm1 'cpu MHz.* \K[[:digit:]]+' /proc/cpuinfo
Todo lo anterior \K
coincide como de costumbre, pero no se incluye en la salida (mirada hacia atrás de longitud variable).