小编Jun*_*aid的帖子

awk - 按列值分组并求和

我有命令按内存使用情况列出系统进程:

ps -A --sort -rss -o comm,pmem
Run Code Online (Sandbox Code Playgroud)

其中列出了一个表格

COMMAND         %MEM
firefox         28.2
chrome           5.4
compiz           4.8
atom             2.5
chrome           2.3
Xorg             2.3
skype            2.2
chrome           2.0
chrome           1.9
atom             1.9
nautilus         1.8
hud-service      1.5
evince           1.3
Run Code Online (Sandbox Code Playgroud)

我想获得每个程序的总内存共享,而不是相同程序的每个进程。所以我可以得到像

COMMAND         %MEM
firefox         28.2
chrome          11.6
compiz           4.8
atom             4.4
Xorg             2.3
skype            2.2
nautilus         1.8
hud-service      1.5
evince           1.3
Run Code Online (Sandbox Code Playgroud)

我想过使用awk,我不太了解。结束了类似的事情:

ps -A --sort -rss -o comm,pmem | awk -F "\t" '
{processes[$0] += $1;}
{End
for(i in processes) {
  print …
Run Code Online (Sandbox Code Playgroud)

pipe ps awk

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

awk ×1

pipe ×1

ps ×1