CPU 클럭 속도를 정수로 출력하기 위해 다음 쉘 명령을 작성했습니다.
grep -m 1 'cpu MHz' /proc/cpuinfo | grep -o -E '[0-9]+'
산출:
900
063
정확한 클럭 속도가 900.063이기 때문입니다. 본질적으로 나는 명령이 소수 부분(.063)이 아닌 900 부분을 반환하기를 원합니다.
어떤 도움이라도 대단히 감사하겠습니다. 감사합니다.
답변1
awk에서 이 작업을 수행하는 것이 더 쉬울 수 있습니다.
awk -F: '/cpu MHz/ {print int($2); exit}' /proc/cpuinfo
-F:
- 나뉘다:
/cpu MHz/
일치하는 줄에서cpu MHz
다음을 수행합니다.{print int($2); exit}'
- 두 번째 필드를 정수로 변환하고 인쇄한 후 종료합니다(따라서 첫 번째 일치 항목만 얻습니다).
답변2
많은 가능성이 있습니다. 여기 또 다른 것이 있습니다:
grep -m 1 'cpu MHz' /proc/cpuinfo | cut -f2 -d: | cut -f1 -d.
답변3
아래는 시도이다
주문하다
sed -n '/cpu MHz/s/.*://p' /proc/cpuinfo | sed "s/\..*//g"
awk 메서드
awk -F ":" '/cpu MHz/{gsub(/\..*/,"",$NF);print $NF}' /proc/cpuinfo
파이썬
#!/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]
답변4
그리고 grep
:
grep -om1 'cpu MHz[^.]*' /proc/cpuinfo | grep -o '[[:digit:]]*'
점이 없고 뒤에 오는 문자를 가져온 다음 grep
숫자를 가져옵니다.
grep
Perl 호환 정규식(PCRE)을 지원하는 경우 :
grep -oPm1 'cpu MHz.* \K[[:digit:]]+' /proc/cpuinfo
이전의 모든 항목은 \K
평소와 같이 일치하지만 출력에는 포함되지 않습니다(가변 길이 뒤돌아보기).