Get per-core CPU usage in terminal in machine-readable format

I need CPU utilization for each core. I want text-based output in the terminal. htop technically contains the information I need, but the output is not suitable for my use case as I need to pipe the output to another command for parsing. Is there a way to get this information in a more machine-readable text format?

EDIT: Any well known format would be nice, e.g. CSV/TSV, JSON, XML. Or something simple would be perfectly fine, like newline-delimited lines. Just something I can easily parse. I can possibly parse the htop output, as it is text. However, that feels wrong because it's sort of "graphical" looking and I can't be sure future versions won't change the look.


Solution 1:

There are ways to get this information from htop, but they basically involve screen scraping, as it is designed primarily for interactive use.

Instead, check out the glances command-line tool, which can do what you want.

It can be installed via homebrew:

brew install glances

Something like the following may work for you:

glances --stdout now,percpu --time 10