Um Ihnen den Einstieg zu erleichtern, können Sie awk
in einer Datei nach Zeilen suchen, die eine Zeichenfolge wie folgt enthalten:
$ awk '/CFS264/ { .... }' lastloggedin
Die Bits in { .... }
sind die Befehle, die erforderlich sind, um die Anzahl der Zeilen mit dieser Zeichenfolge zu ermitteln. Um zu bestätigen, dass das oben genannte funktioniert, können Sie ein print $0
In verwenden, um einfach die Zeilen zu drucken, die die Suchzeichenfolge enthalten.
$ awk '/CFS264/ { print $0 }' lastloggedin
Wenn Sie nach "awk counter" suchen, werden Sie auf diese SO-Frage und Antwort stoßen : Verwenden Sie awk, um keine Datensätze zu zählen . Die dort gezeigte Methode würde für das, was Sie beschreiben, ausreichen:
$ awk '/CFS264/ {count++} END{print count}' lastloggedin
Beispiel
$ last > lastloggedin
$ awk '/slm/ {count++} END {print count}' lastloggedin
758
$ grep slm lastloggedin | wc -l
758
$ grep -c slm lastloggedin
758
HINWEIS: Sie sagen nicht, zu welchem Feld CFS264 in der last
Ausgabe gehört. Angenommen, es ist ein Benutzername, dann könnten Sie den awk
Befehl weiter einschränken , um nur dieses Feld wie folgt zu durchsuchen:
$ awk '$1=="CFS264" { print $0 }' lastloggedin
awk
? Wenn nicht, könnten Sie einfach verwendengrep -c CFS264 lastloggedin | wc -l
.