| LESSPIPE.SH(1) | Dienstprogramme für Benutzer | LESSPIPE.SH(1) |
BEZEICHNUNG
lesspipe.sh - ein Filter für Less
ÜBERSICHT
lesspipe.sh [DATEI[en]] …
BESCHREIBUNG
Der Zweck von lesspipe.sh ist die Verbesserung der Ausgabe von less. Die Wahl der anzuwendenden Regeln zur Beeinflussung der Ausgabe basieren auf dem Inhalt der Datei. Die Dateiendung wird lediglich als letzter Anhaltspunkt berücksichtigt. lesspipe.sh wird üblicherweise als Eingabefilter für less aufgerufen.
Mit Hilfe dieses Filters zeigt less den unkomprimierten Inhalt komprimierter Dateien an (gzip, bzip2, compress, zstd, lz4, lzip, xz, lzma, zlib oder brotli). Bei Dateien, die Archive und Verzeichnisse enthalten (zum Beispiel die Formate tar, ar, zip, 7-zip, rar, jar, cpio, rpm, deb, ms-cabinet, iso, dmg, appimage und snap), wird ein Inhaltsverzeichnis angezeigt. Viele andere Dateien werden für die Anzeige neu formatiert. Diese umfassen pdf, dvi, markdown, die Formate der Bürosuiten MS Office und Openoffice, NetCDF, matlab, device tree blob, html, xml und Medienformate (Bild, Audio und Video). Dafür sind zusätzlich installierte Hilfsanwendungen erforderlich.
Der Filter kann auch rekursiv bis zu einer Tiefe von 6 Verzeichnisebenen agieren und Dateien in Archiven unmittelbar entpacken und anzeigen. Hierbei zählt ein Kompressionsalgorithmus als separate Ebene.
Falls das Dienstprogramm file(1) Text mit einer Kodierung berichtet, die sich von der im Terminal verwendeten Kodierung unterscheidet, dann wird dieser Text mittels iconv(1) in die Standardkodierung umgewandelt. Dies setzt voraus, dass file(1) die Dateikodierung korrekt ermitteln kann, was aber in einigen Situationen nicht gelingt. Sie können die Umwandlung unterdrücken, indem Sie einen Doppelpunkt an den Dateinamen anhängen.
Wenn Sie die Programme git(1), vim(1) oder mutt(1) verwenden, können Sie lesspipe.sh zum Lesen von Nicht-Textdateien aktivieren. Dies ist im Wiki auf https://github.com/wofr06/lesspipe/wiki beschrieben.
FILTERAKTIVIERUNG
Der Filter wird von less(1) aufgerufen, sofern die Umgebungsvariable LESSOPEN korrekt gesetzt ist. Für die Ksh-artige Shells (bash(1), zsh(1)) sollte der Befehl
eval `lesspipe.sh` (bash) oder lesspipe.sh|source /dev/stdin (zsh)
Die obigen Befehle funktionieren nur in der beschriebenen Art und Weise, falls der Dateiname lesspipe.sh lautet. Falls er unter einem anderen Namen installiert ist, dann wird der Aufruf ohne Argument als Filter mit gesetztem LESSQUIET funktionieren und die Eingabe wird von STDIN erwartet.
Mit der wie vorstehend beschrieben gesetzten Umgebungsvariable zeigt less(1) dann für zahlreiche Dateiformate Informationen in Textform an.
Der Filter wird normalerweise nicht aufgerufen, wenn die Eingabe aus einer Pipe an less(1) übergeben wird, wie in
Falls Befehle innerhalb von lesspipe.sh fehlschlagen, werden in einigen Fällen Fehlermeldungen angezeigt. Dies wird als fehlerhaftes Verhalten betrachtet und sollte berichtet werden.
Um informative Meldungen in der ersten Zeile der Filterausgabe zu unterdrücken, kann die Umgebungsvariable LESSQUIET auf einen nicht leeren Wert gesetzt werden.
Um den Filter temporär auszuschalten, können Sie einen Doppelpunkt an den Dateinamen anhängen. Falls der Dateiname selbst einen Doppelpunkt enthält, sollten Sie stattdessen ein Gleichheitszeichen verwenden.
HTML-, XML- und Perl-POD-Dateien
Dateien im Format html und perl pod werden immer dargestellt. Manchmal sollen stattdessen allerdings die ursprünglichen Inhalte der Datei dargestellt werden. Wie bereits erwwähnt, kann dies durch Anhängen eines Doppelpunktes an den Dateinamen erreicht werden. Falls der korrekte Dateityp (html, pod) folgt, kann die Ausgabe farbig dargestellt weden (siehe auch den nachfolgenden Abschnitt).
Falls das Programm xmq installiert ist, dann wird xml anders dargestellt, so dass die XML-Struktur besser erkennbar ist. Eine ähnliche Darstellung für html-Inhalte mittels xmq wird durch Anhängen eines Doppelpunktes an den Dateinamen erreicht. Um die ursprünglichen HTML-Dateiinhalte zu erhalten, werden in diesem Fall zwei Doppelpunkte benötigt.
FARBIGE AUSGABE
Der Filter ist in der Lage, Syntaxhervorhebung für eine breite Auswahl an Dateitypen zu verwenden. Falls installiert, wird nvimpager für die farbige Darstellung der Ausgabe verwendet. Falls nicht, werden stattdessen pygmentize, source-highlight, vimcolor und code2color versucht. Für bat/batcat wird das Thema auf ansi und der Stil auf plain gesetzt, welches der ungefilterten Ausgabe von less näher kommt. Diese Einstellungen können in ~/.config/bat/config oder den Umgebungsvariablen BAT_STYLE und BAT_THEME geändert werden.
Der Inhalt der Protokolldateien kann eingefärbt werden, falls das Programm tspin(1) installiert ist und der Zeichenkette »:log« angehängt wird oder die Dateierweiterung »log« lautet.
Aus diesen Einfärbungsprogrammen können Sie eines als Standard für die farbige Darstellung festlegen, indem Sie die Umgebungsvariable LESSCOLORIZER auf dessen Namen setzen. Für pygmentize(1) und bat/batcat sind folgende Einstellungen erlaubt:
LESSCOLORIZER='pygmentize -O style=foo' # -P auch erlaubt LESSCOLORIZER='bat --style=foo --theme=bar' # Vorgabe: theme=ansi, style=plain
Die Syntaxhervorhebung kann durch Anhängen eines Doppelpunktes an den Dateinamen deaktiviert werden, falls die Ausgabe farbig war. Sollte für die Syntaxhervorhebung die falsche Sprache gewählt worden sein, kann eine andere durch Anhängen eines Doppelpunktes und der entsprechenden Endung an den Dateinamen erzwungen werden. Die Liste der Endungen und unterstützten Sprachen kann mittels folgenden Einfärbe-Befehlen angezeigt werden:
bat --list-languages batcat --list-languages pygmentize -L lexers source-highlight --lang-list code2color -h vimcolor -L (both for vimcolor and nvimpager)
In einer Pipe kann diese Methode nicht verwendet werden. Ein möglicher Ausweg ist das Hinzufügen eines letzten Arguments, das von lesspipe.sh ausgewertet wird. Ein einzelner Doppelpunkt (Deaktivierung der Filterung) oder :Erweiterung (Erzwingung einer bestimmten Sprache) ist beispielsweise möglich mit
Wenn die Bedingungen für Syntax-Hervorhebung erfüllt sind, werden Auflistungen von Verzeichnis- und Tar-Inhalten ebenfalls farbig dargestellt.
Da less(1) in anderen Programmen (z.B. man(1), git(1) und perldoc(1)) als Standardbrowser verwendet wird, kann lesspipe.sh beteiligt sein und die Ausgabe dieser Programme verändern.
ÜBERWACHEN ANWACHSENDER DATEIEN
Die Fähigkeit, größer werdene Dateien zu beobachten (normalerweise für Protokolldateien wie Syslog erwünscht) (mittels des Befehls F innerhalb von less(1) oder dem Aufruf von less(1) mit der Option +F) könnte verloren gehen, falls lesspipe.sh die Eingabe in einer temporären Datei für die weitere Bearbeitung speichert. Dies kann korrigiert werden, in dem ein Doppelpunkt als letztes Argument für less wie beispielsweise folgt angegeben wird:
FORTGESCHRITTENE VERWENDUNG
Diese Version von lesspipe.sh ermöglicht Ihnen die Anzeige individueller Dateien, die in einem Dateiarchiv enthalten sind, welches selbst sogar in einem anderen Archiv enthalten sein kann.
Die Notation für die Betrachtung von Dateien in Archiven, die mehrere Dateien enthalten, ist wie folgt:
Diese Methode zum Entpacken und Anzeigen von Dateien funktioniert wiederum nicht, wenn less in einer Ausgabe-Pipe aufgerufen wird und die Umgebungsvariable LESSOPEN mit den Zeichen |- beginnt. Wie auch für die Syntaxhervorhebung, ist die Lösung die Verwendung eines zweiten Arguments, das mit einem Doppelpunkt beginnt. Dann würde der vorige Befehl folgendermaßen lauten:
VERVOLLSTÄNDIGUNGSMECHANISMUS FÜR ARCHIVINHALTE
Mit der bereitgestellten Datei lesscomplete (für zsh(1) und bash(1)), _less (für zsh) und less (für bash), die während der Installation erstellt werden, ist eine Tab-Vervollständigung für Dateien in Archiven möglich. Wenn Sie nach dem Namen einer Archivdatei einen Doppelpunkt (:) oder ein Gleichheitszeichen (=) eingeben und dann die Tabulatortaste drücken, wird die Vervollständigung ausgelöst. Dies funktioniert auch in verketteten Archiven. Die für den Vervollständigungsalgorithmus benötigten Dateien werden in Verzeichnissen installiert, die den Auswahlen während der Installation (Konfigurationsskript) entsprechen.
Die Dateien lesscomplete muss sich in einem der in $PATH aufgelisteten Verzeichnisse und die Funktion _less für zsh(1) in einem in $fpath aufgelisteten Verzeichnis befinden. Die Datei less mit Vervollständigungsanweisungen für bash(1) muss innerhalb eines Bash-Initialisierungsskripts eingelesen werden, zum Beispiel in ~/.bashrc. Neue Verzeichnisse wie ~/scripts und ~/.fpath (für zsh(1)) können mit folgenden Befehlen hinzugefügt werden:
In zsh(1) muss compinit aufgerufen werden und die Option »menucomplete« muss gesetzt werden, falls das noch nicht bereits passiert ist. Dies kann mit folgenden Befehlen erreicht werden:
autoload compinit compinit -Uz setopt menucomplete
Für bash muss bash-completion (normalerweise ein Paket mit diesen Namen) installiert werden.
BENUTZERDEFINIERTE FILTERUNG
Das Filtern mit lesspipe.sh kann durch ein benutzerdefiniertes Programm ersetzt oder erweitert werden. Ein solches Programm muss entweder .lessfilter heißen (und sich im Home-Verzeichnis des Benutzers befinden) oder lessfilter heißen (und sich in einem in $PATH erwähnten Verzeichnis befinden). Es muss ausführbar sein und muss sich mit einem Exit-Code 0 beenden, falls das Filtern innerhalb des Skriptes erfolgte. Andernfalls bedeutet ein von Null verschiedener Exit-Code, dass das Filtern bei lesspipe.sh verbleibt.
Dieser Mechanismus kann dazu verwendet werden, dass Filtern für neue Formate hinzuzufügen oder z.B. das Filtern für bestimmte Dateitypen zu unterbinden. Beispielsweise könnte eine .lessfilter folgendermaßen aussehen:
#!/usr/bin/env bash case $1 in *.md|*.MD|*.mkd|*.markdown|*.rst) # falls das Python-Modul rich.markdown nicht gefunden wird, dann # ist der Exit-Code nicht Null und lesspipe.sh wird abgebrochen python3 -m rich.markdown -c $1 ;; *.html|*.htm) # rufen Sie Ihren Lieblings-HTML-Verschöner auf, »cat -b« ist nur ein langweiliges Beispiel cat -b $1 ;; *) exit 1;; esac
AUTOR
Wolfgang Friebel
FEHLER MELDEN
Melden Sie Fehler an <wp.friebel AT gmail DOT com>.
COPYRIGHT
Copyright © 2005-2026 Wolfgang Friebel
Dies ist freie Software, in den Quellen finden Sie die Bedingungen zur
Weitergabe. Es gibt KEINE Garantie, auch nicht für die MARKTREIFE
oder die TAUGLICHKEIT FÜR EINEN BESTIMMTEN ZWECK.
SIEHE AUCH
Eine Beschreibung von lesspipe.sh finden Sie auch in der Datei README, die im Quellcode-Paket enthalten ist.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> und Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
| April 2026 | lesspipe.sh |