I want to retrieve the cpu usage/free percentage from mpstat output. The bash cut can be used to retrieve such details but i dont know what should be the delimiter viz.

[idlecool@archbitch proc]$ mpstat | grep "all" | cut -d '$x' -f11

what should be $x so that i can skip white spaces and select value corresponding to %idle?

Output of mpstat:

[idlecool@archbitch proc]$ mpstat 
Linux 2.6.36-ARCH (archbitch)   01/14/11    _i686_  (2 CPU)

19:58:53     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
19:58:53     all    5.51    0.01    2.96    0.84    0.00    0.01    0.00    0.00   90.66

Wrong tool.

mpstat | awk '$2 == "all" { print $11 }'

The delimiter should be space. However, mpstat uses multiple spaces between printed fields for alignment. Therefore you also need tr to squeeze multiple delimiters.

mpstat | grep -F all | tr -s ' ' | cut -d ' ' -f 11

Note: -F flag for grep is not essential in this case, though, I habitually use it whenever the pattern is not a regex as it significantly speeds up searches on big inputs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.