脚本:我使用 pid,user... 执行 ps 命令,我正在尝试使用 awk 来汇总不同进程的总体 CPU 利用率。
命令:
> $ps -eo pid,user,state,comm,%cpu,command --sort=-%cpu | egrep -v '(0.0)|(%CPU)' | head -n10 | awk '
> { process[$4]+=$5; }
> END{
> for (i in process)
> {
> printf($1" "$2" "$3" ""%-20s %s\n",i, process[i]" "$6) ;
> }
>
> }' | sort -nrk 5 | head
awk:根据进程名求和第5列(第4列)
输出:
1. 10935 zbynda S dd 93.3 /usr/libexec/gnome-terminal-server
2. 10935 zbynda S gnome-shell 1.9 /usr/libexec/gnome-terminal-server
3. 10935 zbynda S sublime_text 0.6 /usr/libexec/gnome-terminal-server
4. 10935 zbynda S sssd_kcm 0.2 /usr/libexec/gnome-terminal-server
如您所见,第四列和第五列都很好,但其他列(行/列)只是 ps 命令的第一个条目。我应该有 4 个不同的进程,如第四列,但例如,最后一列只显示一个相同的进程。
如何从 ps 命令获取其他条目?(不仅是第一个条目)