awkを使用してプロセス名でグループ化し、メモリとCPU使用率をまとめる方法は?

awkを使用してプロセス名でグループ化し、メモリとCPU使用率をまとめる方法は?

以下に示すように、%cpu、%mem、およびプロセス名を含むps出力ファイル名psがあります。

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

2つの配列の使用

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

関連情報