我有一个 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}'