In Linux arbeiten wir ständig mit String- und Textdateien. Unabhängig davon, ob sie mit Protokolldateien oder Dokumenten arbeiten, ist Textmanipulation ein Prozess, dem wir nicht entkommen können.
Diese Anleitung zeigt Ihnen, wie Sie das letzte Ereignis einer Zeichenfolge in einer Datei unter Linux finden können. Linux verfügt über viele Tools, mit denen Aufgaben ausgeführt werden können. Der Einfachheit halber halten wir uns jedoch an die leicht verfügbaren Tools in allen wichtigen Linux -Verteilungen fest.
Methode 1: Verwenden von Grep
Globaler regelmäßiger Ausdruckdruck, bekannt als Grep, ist ein beliebtes und leistungsstarkes Textmanipulationsinstrument.
Es funktioniert, indem Eingaben von Standardeingaben oder einer Datei akzeptiert werden und nach einem bestimmten Muster gesucht werden. Sobald Grep das angegebene Muster findet, druckt es das Ergebnis zum Standardausgang. Das angegebene Muster kann eine einzelne Zeichenfolge oder ein komplexer Regex sein.
Angenommen, wir haben die Datei auth.log (/var/log/auth.Protokoll). Um das letzte Auftreten einer String (uid = 0) zu finden, können wir den Befehl verwenden:
$ sudo grep "uid = 0" auth.Protokoll | Schwanz -1
Die Ausgabe erfolgt wie unten gezeigt:
Der Befehl ist relativ einfach. Wir beginnen damit, die Zeichenfolge zu finden, die wir mit Grep verwenden müssen. Als Nächst.
Sie können den obigen Befehl ändern, um die letzten fünf Auseinandersetzungen der Zeichenfolge zu erhalten wie:
$ sudo grep "uid = 0" auth.Protokoll | Schwanz -5
Methode 2: awk
Awk ist eine weitere beliebte String Manipulationssprache. Awk ist sehr leistungsfähig, da es im Vergleich zu anderen Textmanipulationsprogrammen unglaubliche Funktionen bietet.
Um eine ähnliche Zeichenfolge wie oben zu finden, können wir einen Befehl verwenden wie:
$ sudo awk '/uid = 0/flag = 1; Flagge '| Schwanz -1
In ähnlicher Weise wird dies das letzte Ereignis der Zeichenfolge als:
Abschluss
Das ist es für diesen einen. In diesem schnellen Tutorial haben wir zwei Hauptmethoden erörtert, um das letzte Ereignis einer Zeichenfolge mit Grep und Awk zu finden.