LINUX.ORG.RU

История изменений

Исправление gedisdone, (текущая версия) :

В принципе можно сделать:

#!/usr/bin/awk -f
{
  com = substr($0, index($0, $10));
  arr[com, "cpu"] += $2;
  arr[com, "mem"] += $3;
  arr[com, "vsz"] += $4;
  arr[com, "rss"] += $5;
  coms[com] = 1;
}

END { 
  for (com in coms) {
    print com, arr[com, "cpu"], arr[com, "mem"], arr[com, "vsz"], arr[com, "rss"] 
  }
}
С другой стороны может быть запущено несколько команд с разными аргументами, тогда можно просто брать по десятой колонке. Тогда значение com будет com = $10.

Запуск станет ps waux | awk -f sum.awk.

Исправление gedisdone, :

В принципе можно сделать:

#!/usr/bin/awk -f
{
  com = substr($0, index($0, $10));
  arr[com, "cpu"] += $2;
  arr[com, "mem"] += $3;
  arr[com, "vsz"] += $4;
  arr[com, "rss"] += $5;
  coms[com] = 1;
}

END { 
  for (com in coms) {
    print com, arr[com, "cpu"], arr[com, "mem"], arr[com, "vsz"], arr[com, "rss"] 
  }
}
С другой стороны может быть запущено несколько команд с разными аргументами, тогда можно просто брать по десятой колонке. Тогда значение com будет com = $10

Исходная версия gedisdone, :

В принципе можно сделать: #!/usr/bin/awk -f { com = substr($0, index($0, $10)); arr[com, «cpu»] += $2; arr[com, «mem»] += $3; arr[com, «vsz»] += $4; arr[com, «rss»] += $5; coms[com] = 1; }

END { for (com in coms) { print com, arr[com, «cpu»], arr[com, «mem»], arr[com, «vsz»], arr[com, «rss»] } } С другой стороны может быть запущено несколько команд с разными аргументами, тогда можно просто брать по десятой колонке. Тогда значение com будет com = $10