Bash: Nur teilweise unterschiedliche Zeilen finden/zaehlen

29/10/2016 - 15:35 von Sebastian Suchanek | Report spam
Hallo NG!

Durch den Einsatz von "ps" kombiniert mit ein wenig "grep"-
Akrobatik kann ich mir relativ leicht alle User anzeigen lassen,
die aktuell in meinem Courier-IMAP-Server eingeloggt sind:

| # ps -aux | grep imapd | grep -v -e courier -e grep
| UserA 3104 0.0 0.0 26512 3116 ? S 12:28 0:00 /usr/bin/imapd Maildir
| UserB 24439 0.0 0.0 23756 2616 ? S 10:07 0:02 /usr/bin/imapd Maildir
| UserB 24440 0.0 0.0 24300 3104 ? S 10:07 0:03 /usr/bin/imapd Maildir
| UserB 24446 0.0 0.0 24056 2864 ? S 10:07 0:02 /usr/bin/imapd Maildir
| UserB 24450 0.4 0.0 25120 3852 ? S 10:07 1:17 /usr/bin/imapd Maildir
| UserB 24453 0.4 0.0 24788 3472 ? S 10:07 1:16 /usr/bin/imapd Maildir
| #

Wenn ich den zweiten grep-Befehl noch um ein "-c" ergànze,
bekomme ich auch direkt die Anzahl der insgesamt eingeloggten
User. (Hier im Beispiel "6".)
Wie man allerdings an obigem Beispiel sieht, kann es durchaus
vorkommen, dass ein User mehrfach eingeloggt ist.
(Thunderbird öffnet zum Beispiel gerne mehrere Server-Logins
parallel.)
Gibt es in der Bash einen (relativ) einfachen Weg, nur die
Zeilen mit *unterschiedlichen* Usernamen (im obigen Beispiel
"2") zu zàhlen? Primàr geht's mir dabei um die "nackte"
Anzahl, eine Liste mit den Namen der eingeloggten User wàre
aber auch "nice to have".


TIA,

Sebastian
 

Lesen sie die antworten

#1 Bernd Mayer
29/10/2016 - 16:07 | Warnen spam
Am 29.10.2016 um 15:35 schrieb Sebastian Suchanek:

Durch den Einsatz von "ps" kombiniert mit ein wenig "grep"-
Akrobatik kann ich mir relativ leicht alle User anzeigen lassen,
die aktuell in meinem Courier-IMAP-Server eingeloggt sind:

| # ps -aux | grep imapd | grep -v -e courier -e grep
| UserA 3104 0.0 0.0 26512 3116 ? S 12:28 0:00 /usr/bin/imapd Maildir

Wenn ich den zweiten grep-Befehl noch um ein "-c" ergànze,
bekomme ich auch direkt die Anzahl der insgesamt eingeloggten
User. (Hier im Beispiel "6".)
Wie man allerdings an obigem Beispiel sieht, kann es durchaus
vorkommen, dass ein User mehrfach eingeloggt ist.
(Thunderbird öffnet zum Beispiel gerne mehrere Server-Logins
parallel.)
Gibt es in der Bash einen (relativ) einfachen Weg, nur die
Zeilen mit *unterschiedlichen* Usernamen (im obigen Beispiel
"2") zu zàhlen?



Hallo,

schau Dir mal den Befehl uniq an:
http://www.computerhope.com/unix/uuniq.htm


Bernd Mayer

Ähnliche fragen