awk Lösung gesucht

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
whisper
Beiträge: 3185
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

awk Lösung gesucht

Beitrag von whisper » 07.01.2020 19:17:47

Ich bin ein wenig raus aus awk Scripting.
Ich möchte eine Prozessliste ps -ef --sort=uid
so aufbereiten, dass die Anzahl für jeden User und oder auch nach Prozessnamen berechnet und ausgegeben wird.
Mein Ansatz ist

Code: Alles auswählen

ps -ef --sort=uid|awk '{for (i=1;i<NF;i++) anzahl[$i]++}{printf "%s Anzahl=%d\n", $1,anzahl[$i]}'
Was nicht funktioniert und ich nicht sehe, warum nicht.
Kann mir jemand aufs Fahrrad helfen?
Das Ganze ist zwecks Monitoring auf dem Server gedacht.
Wird natürlich gebührend gefeiert und veröffentlicht ;-)


Also so z.B. sollte das Ergebnis sein

Code: Alles auswählen

postgres  Anzahl=30
tcat          Anzahl=5
vmail       Anzahl=3

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: awk Lösung gesucht

Beitrag von ThorstenS » 07.01.2020 20:29:28

Die Holzhammermethode, die ich nur poste, um bei dem Thread auf dem Laufenden zu sein ;-)

Code: Alles auswählen

ps -eo user=|sort|uniq -c| awk '{print $NF,"Anzahl="$1}' | sort -t= -nr -k2
Eine elegantere Lösung von https://unix.stackexchange.com/question ... ux-command

Code: Alles auswählen

ps aux | awk 'NR>1{tot[$1]++;}END{for(id in tot)printf "%s Anzahl=%s\n",id,tot[id]}' | sort -t= -nr -k2

Benutzeravatar
whisper
Beiträge: 3185
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: awk Lösung gesucht

Beitrag von whisper » 07.01.2020 21:34:19

Sehr schön, danke dir.
Ich werde dann morgen damit mal weiter arbeiten und dann meine Idee, die ich damit verfolge beschreiben.

Antworten