Suchen und Filtern im Kommandozeilentool less

Fr, 4. Juni 2021, Marco

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:

Es wurden noch keine Kommentare verfasst, sei der erste!