Awk,Sed:如何从字符串中解析和求和值

mic*_*son 3 unix awk sed

我有一个像这样的字符串

Cpu(s):  1.9%us,  2.1%sy,  1.5%ni, 94.5%id,  0.8%wa,  0.0%hi,  0.1%si,  0.0%st
Run Code Online (Sandbox Code Playgroud)

它代表我的unix盒子的CPU使用率.
现在我需要应用awk和sed(我认为)来提取CPU的当前负载.我想从字符串中提取'us','sy','ni'值,然后我想总结它们.
该脚本应该返回5.5(1.9 + 2.1 + 1.5)...你知道如何实现这个目标吗?
非常感谢

gho*_*g74 6

好吧,你只需要一个awk命令.不需要其他工具

$ str="Cpu(s):  1.9%us,  2.1%sy,  1.5%ni, 94.5%id,  0.8%wa,  0.0%hi,  0.1%si,  0.0%st" 
$ echo $str | awk '{print $2+$3+$4+0}'
5.5
Run Code Online (Sandbox Code Playgroud)