Escrevi o comando shell abaixo para gerar a velocidade do clock da CPU como um número inteiro:
grep -m 1 'cpu MHz' /proc/cpuinfo | grep -o -E '[0-9]+'
SAÍDA:
900
063
Isso ocorre porque a velocidade exata do clock é 900.063. Essencialmente, quero que o comando retorne a parte 900, mas não a parte após o decimal (0,063).
Qualquer ajuda é muito apreciada, obrigado.
Responder1
Isso pode ser mais fácil de fazer no awk:
awk -F: '/cpu MHz/ {print int($2); exit}' /proc/cpuinfo
-F:
- dividir em:
/cpu MHz/
nas linhas correspondentescpu MHz
, faça:{print int($2); exit}'
- converter o segundo campo em inteiro, imprimi-lo e sair (para obtermos apenas a primeira correspondência)
Responder2
Existem muitas possibilidades. Aqui está mais um:
grep -m 1 'cpu MHz' /proc/cpuinfo | cut -f2 -d: | cut -f1 -d.
Responder3
Abaixo está tentar
comando
sed -n '/cpu MHz/s/.*://p' /proc/cpuinfo | sed "s/\..*//g"
Método estranho
awk -F ":" '/cpu MHz/{gsub(/\..*/,"",$NF);print $NF}' /proc/cpuinfo
Pitão
#!/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]
Responder4
Com grep
:
grep -om1 'cpu MHz[^.]*' /proc/cpuinfo | grep -o '[[:digit:]]*'
Obtenha a linha sem o ponto e os seguintes caracteres, depois grep
para os dígitos.
Se você grep
suporta expressões regulares compatíveis com Perl (PCRE):
grep -oPm1 'cpu MHz.* \K[[:digit:]]+' /proc/cpuinfo
Tudo antes de \K
é correspondido normalmente, mas não incluído na saída (lookbehind de comprimento variável).