如何在 bash 的 `cut` 中将多个空格(例如:制表符)设置为分隔符

如何在 bash 的 `cut` 中将多个空格(例如:制表符)设置为分隔符

我想从 mpstat 输出中检索 CPU 使用率/空闲百分比。cut可以使用 bash 来检索此类详细信息,但我不知道分隔符应该是什么。

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

$x 应该是什么以便我可以跳过空格并选择与 %idle 相对应的值?

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

答案1

错误的工具。

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

答案2

分隔符应该是空格。但是,mpstat打印字段之间使用多个空格进行对齐。因此您还需要tr压缩多个分隔符。

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

注意:在这种情况下,grep 的 -F 标志不是必需的,但是,当模式不是正则表达式时,我习惯性地使用它,因为它可以显著加快对大输入的搜索速度。

相关内容