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