Also wurde mir gesagt, ich solle last > lastloggedin machen Dadurch wird eine Datei erstellt, die die letzte Anmeldung der Klasse seit dem letzten Systemneustart anzeigt, und jetzt werde ich aufgefordert, ein Awk-Skript mit dem Namen myawk zu schreiben das zählt/bestimmt, wie viele Zeilen von lastloggedin die Zeichenfolge CFS264 enthalten .
Ich habe grep -c CFS264 lastloggedin ausgeführt
Akzeptierte Antwort:
Um Ihnen den Einstieg zu erleichtern, können Sie awk verwenden um nach Zeilen in einer Datei zu suchen, die eine Zeichenfolge wie diese enthalten:
$ awk '/CFS264/ { .... }' lastloggedin
Die Bits in { .... } sind die Befehle, die erforderlich sind, um die Anzahl der Zeilen mit dieser Zeichenfolge zu zählen. Um zu bestätigen, dass das obige funktioniert, können Sie einen print $0 verwenden darin, um einfach die Zeilen auszugeben, die die Suchzeichenfolge enthalten.
$ awk '/CFS264/ { print $0 }' lastloggedin
Was das Zählen angeht, wenn Sie nach „awk counter“ suchen, stoßen Sie auf diese SO Q&A mit dem Titel:using awk to count no of records. 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 im last nicht, zu welchem Feld CFS264 gehört Ausgang. Angenommen, es handelt sich um einen Benutzernamen, dann könnten Sie den awk weiter einschränken Befehl, nur dieses Feld wie folgt zu durchsuchen:
$ awk '$1=="CFS264" { print $0 }' lastloggedin