Bash 脚本从 lscpu 获取 CPU

Bash 脚本从 lscpu 获取 CPU

我运行 lscpu 来获取 CPU 数量

lscpu | grep -i "Model name:" | cut -d':' -f2- -

结果:CPU:2 NUMA node0 CPU:0,1

如何只获取 CPU 数量并丢弃收集到的所有其他信息?我只需要获取 CPU 数量,无需其他信息。

谢谢你学习Linux

答案1

您可以获取核心数: lscpu | egrep "^CPU\(s\):" | sed -e "s/[^0-9]//g"

...CPU 数量: lscpu | egrep "^Socket\(s\):" | sed -e "s/[^0-9]//g"

...并列出 CPU 编号: lscpu -p=cpu

man lscpu

一些解释: egrep使用正则表达式提取一行。carret 符号匹配行首,反斜杠用于转义括号符号,表示行应以给定的文本开头,括号按原样使用,没有其他含义。 sed仅提取行的数字字符使用: s...作为替换命令, [^0-9]...匹配所有非数字字符并在每次出现时将其替换为空(通过使用g)。斜杠用于分隔四个部分:替换/要替换的内容/替换的内容/全局

至少有百万种方法可以实现您的要求。给出的方法可能不是最好的,但您可以得到一个想法。

相关内容