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を使用して上記の出力が必要です。awksed

どんな助けでも大変感謝します。

答え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)}"

関連情報