Vor Kurzem habe ich einen Toot im Fediverse gesehen, welcher beschreibt, wie man die Ausgabe des Kommandozeilenprogramms less
filtern kann. Da Toots doch eher kurzlebig sind, möchte ich den Inhalt hier kurz als Artikel verewigen.
Ausgabe filtern
Mit less
ist es möglich, die Ausgabe zu filtern. Hierfür wird zuerst less dateiname
ausgeführt. Dies öffnet eine Datei in less
. Sobald die Datei geöffnet ist, kann mit dem Zeichen &
die Ausgabe mit regulären Ausdrücken gefiltert werden. Mit &
gefolgt von einem !
kann ein Muster eingegeben werden, sodass die Zeilen, welche dem Muster entsprechen, nicht angezeigt werden. Bei der Aneinanderreihung mehrerer Filter müssen sämtliche Kriterien der Filter erfüllt werden. Am unteren Rand von less
wird mit einem Ampersand signalisiert, dass einige Zeilen ausgeblendet sind. Die Filter können durch die Eingabe von &
direkt gefolgt von der Enter-Taste wieder deaktiviert werden.
Nachfolgend ist ein Beispiel ersichtlich, wie die Filteroption genutzt werden kann. Es handelt sich hierbei um ein Log eines Webservers. Ich filtere nach allen Anfragen, welche den Statuscode 404 zurückgegeben haben. Nachdem die Ausgabe gefiltert wurde, können wieder alle Zeilen mit &
und der Enter-Taste angezeigt werden.
Zusammenfassend habe ich im oberen Video Folgendes gemacht:
less /var/log/nginx/access.log
Eingabe des Filters: &404<ENTER>
Filter zurücksetzen: &<ENTER>
In einer Datei suchen
Wenn zum Beispiel Logeinträge nicht nur in einer Zeile Platz finden, sondern in mehreren, so kann das zuvor beschriebene Filtern der Ausgabe eher für Verwirrung sorgen. Innerhalb von less
kann problemlos mit /
vorwärts gesucht werden. Das heisst, dass sämtliche nachfolgenden Zeilen durchsucht werden. Mit einem Fragezeichen als Befehl lässt sich in less
auch rückwärts suchen. Wie bei der Filterung der Ausgabe lässt sich auch hier mit einem !
die Suche negieren. Sowohl die Vorwärts- als auch die Rückwärtssuche ermöglichen es, dass mit einer Zahl vor ?
resp. /
die N-te Stelle mit dem Suchmuster gefunden wird.
Im oberen Beispiel öffne ich das Manual von less
und Suche nach dem Muster " /"
. Dies führt dann direkt zu der Beschreibung, wie eine Vorwärtssuche in less
gemacht werden kann. Kurz gesagt, sind folgende Schritte notwendig:
man less
Eingabe des Suchstrings: /
Bei meinem Test wurden zum Beispiel auch die Ausgabe von git diff
oder journalctl
direkt in less
geöffnet. Dies bedeutet, dass auch die Ausgabe dieser Kommandos relativ einfach durchsucht und gefiltert werden kann. Im verlinkten Toot resp. den Antworten darauf werden noch ein paar mehr Möglichkeiten aufgezeigt, was mit dem Werkzeug less
alles möglich ist. Ich habe mich in diesem Artikel allerdings nur auf die Suche und das Filtern beschränkt. Kennst du weitere interessante Optionen von less
oder einem anderen Kommandozeilentool? Wenn ja, dann teile diese über unsere Kontaktmöglichkeiten mit.
Quellen:
- Toot: https://social.tchncs.de/web/statuses/106296344244690853
- Manual von
less