CPU의 클럭 속도를 정수로 출력하기 위해 아래 쉘 명령을 작성했습니다.
grep -m 1 'cpu MHz' /proc/cpuinfo | grep -o -E '[0-9]+'
산출:
900
063
정확한 클럭 속도가 900.063이기 때문입니다. 본질적으로 나는 명령이 900 부분을 반환하지만 소수점 이하 부분(.063)은 반환하지 않기를 원합니다.
도움을 주시면 감사하겠습니다.
답변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
평소와 같이 일치하지만 출력에는 포함되지 않습니다(가변 길이 뒤돌아보기).