#! /bin/sh # WdBD 2005L zad 2 # robert.budzynski@fuw.edu.pl # ta wersja jest minimalnie szybsza ps -ef | gawk ' {np[$1]++} END{for (u in np)print u, np[u]} ' | while read u n ; do getent passwd $u | gawk -F: -v n=$n -v u=$u ' {(comm=("getent group "$4))|getline foo; close(comm); split(foo,arr); $4=arr[1]; split($5,arr,","); $5=arr[1]; printf "%8s:%30.30s, %10.10s:%4d\n",u,$5,$4,n} ' done | sort -t: -k3 -n -r