2.60
次の文字列(他のコマンドの出力lscpu
)からのみ印刷するコマンドを作成するにはどうすればよいですか?
model name : Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz
ベストアンサー1
@<whitespaces>
GHz
lineで始まる行と行末の行の間に数字を印刷したいとしますmodel name
。
sed -nE 's/^model name.*@[[:space:]]*([.[:digit:]]+)GHz$/\1/p' /proc/cpuinfo
またはGNUを使用してくださいgrep
:
grep -Po '^model name.*@\s*\K[.\d]+(?=GHz$)' /proc/cpuinfo
については、lscpu
以下も参照してください。
lscpu -J | jq -r '
.lscpu[] |
select(.field == "Model name:").data |
match("@\\s*([\\d.]+)GHz$").captures[0].string |
tonumber'
または:
lscpu -J | jq -r '.lscpu[]|select(.field == "CPU max MHz:").data|tonumber'
モデル名の基本周波数ではなく、MHz単位の最大周波数です。