Awk 如何在vmstat结果中获取CPU(空闲)值

Awk 如何在vmstat结果中获取CPU(空闲)值,awk,Awk,我试图在vmstat结果中获取'id'的值。 但是,我发现“id”列的位置在linux/AIX/HP等平台之间是不同的 ## Linux procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 35268 11756

我试图在vmstat结果中获取'id'的值。 但是,我发现“id”列的位置在linux/AIX/HP等平台之间是不同的

## Linux
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0  35268 117568 158244 1849104    0    0     3 11321    5    2  9 15 73  3  0
所以,我想我应该找到字符串'id'并得到位置(the),然后在下一行中得到位置的值


如何使用awk脚本实现这一点?

此oneliner可满足您的要求:

awk '{for(i=NF;i>0;i--)if($i=="id"){x=i;break}}END{print $x}'

首先找出
id
索引,然后在最后一行中打印相应的列。

这一行可以实现您想要的功能:

awk '{for(i=NF;i>0;i--)if($i=="id"){x=i;break}}END{print $x}'
首先找出
id
索引,然后在最后一行打印相应的列