如何使用awk按进程名称分组并汇总内存和cpu使用情况?

如何使用awk按进程名称分组并汇总内存和cpu使用情况?

我有一个 ps 输出文件名 ps ,其中包含 %cpu、%mem 和进程名称,如下所示

3.0     0.1     php-fpm: pool www
2.0     0.1     php-fpm: pool www
1.0     0.1     php-fpm: pool www
9.0     0.1     chrome
9.0     0.1     chrome 

我想总结同一进程的CPU和内存使用情况。所以预期的输出将是

6.0     0.3     php-fpm: pool www
18.0    0.2     chrome

目前我用来awk 'BEGIN { FS=OFS=SUBSEP="\t"}{arr[$3]+=$1 }END {for (i in arr) print arr[i], i}' ps总结单列,所以我只能得到

6.0         php-fpm: pool www
18.0        chrome

我该怎么做才能实现这一目标?

答案1

使用两个数组

awk 'BEGIN { FS=OFS="\t"}{a0[$3]+=$1; a1[$3]+=$2 }END {for (i in a0) print a0[i], a1[i], i}'

相关内容