特定の文字列で列名を取得するには?

特定の文字列で列名を取得するには?

CPUを90%以上使用しているサーバーで最高のPIDとコマンドを取得したいです。変数にCPU%が必要です。以下のpsコマンドを使って試しました。

ps -eo pid,cmd,%cpu --sort=-%cpu | head -2
  PID CMD                         %CPU
  987 dd if=/dev/zero of=/dev/nul 63.6

AWKを使用しようとしていますが、ddコマンドが別の列として表示されるため、誤った情報が表示されます。

CPU%を得る方法はありますか?

答え1

取得するには、次の方法を使用します。トップCPU%:

ps -eo %cpu --sort=-%cpu --no-headers | head -1

--no-headers
ヘッダー行をまったく印刷しないでください

答え2

次のコマンドは%CPUを提供します。

ps -eo pid,cmd,%cpu --sort=-%cpu | head -2| tail -1 | awk '{print $NF}'
  • tail -1- 実際の数字を含む最後の行を提供します。
  • awk 'print $NF}'行の最後の要素を印刷します

関連情報