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 番目のフィールドを整数に変換し、それを印刷して終了します (最初の一致のみを取得します)
答え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
通常どおり一致しますが、出力には含まれません (可変長の後読み)。