grep/awk/sed 从匹配到文本的行

grep/awk/sed 从匹配到文本的行

我想从以下位置获得以下输出lscpu

(number of cores) x (cpu model name) @ (max mhz)

我已经弄清楚我需要的属性:

  • Model name:
  • Core(s) per socket
  • CPU max MHz

但在我的系统上,有多个不同型号和时钟速度的 CPU。所以我在名为 的输出中有多个属性Model name:

我想要上面提到的输出,仅使用grep,awk和/或sed

任何帮助将不胜感激。

答案1

这就是我想要的:

lscpu | grep -E "Model name:|Core\(s\) per socket:|CPU max MHz:" | awk "{printf(\"%s\n\", \$NF)}" | paste -d " " - - - | awk "{printf(\"%s x %s @ %.0fMHz\n\", \$2, \$1, \$3)}"

相关内容