Lesspipe.sh: Alles ist eine Textdatei

  Götz   Lesezeit: 2 Minuten  🗪 9 Kommentare Auf Mastodon ansehen

Lesspipe.sh ist ein Werkzeug, welches dem Programm Less ermöglicht verschiedener Dateiformate die Text enthalten zu öffnen.

lesspipe.sh: alles ist eine textdatei

Ich lehne Dateien ab, welche mit einem Textverarbeitungsprogramm geöffnet werden. Es ärgert mich, dass ich es nicht in einem Terminal lesen, durchsuchen, oder auch parsen kann.

Leider respektiert der Rest der Menschheit nicht diesen Wunsch und ich werde regelmäßig damit belästigt, oder schlimmer, muss diese Programme selbst benutzen.

Damit ich auch solche Dateien durchsuchen kann, hat der grossartige Wolfgang Friebel das Tool lesspipe.sh [1] entwickelt. Es macht sich ein Feature des Programms less zunutze und parst verschiedene Dateien (wie die Liste in [1] deutlich darstellt) durch sein Skript und gibt diese dann less zur Ausgabe.

Für die Verwendung muss das Skript lesspipe.sh lokal oder global installiert sein, die entsprechenden Tools zum Auslesen installiert (z.B. LibreOffice) und die .bashrc bzw. auch .zshrc (weitere Shells sind kompatibel) um die Variable LESSOPEN erweitert werden.

LESSOPEN="|lesspipe.sh %s"
export LESSOPEN

In den folgenden zwei Abbildungen ist eine Textdatei im .odt Format - geöffnet mit LibreOffice - sowie die Ausgabe von less mit lesspipe.sh und pandoc zur Verarbeitung installiert dargestellt.

Quellen:

[1] https://github.com/wofr06/lesspipe


[2] https://www.man7.org/linux/man-pages/man1/less.1.html


[Hauptbild] Pixaby (Ylloh): https://pixabay.com/de/photos/lesen-kapitel-buch-papier-seite-3808591/

Tags

Textverarbeitung, Terminal, Less, Tooltipp

Wladimir
Geschrieben von Wladimir am 7. August 2024 um 09:23

Macht Pandoc nicht das gleiche und ist dabei um einiges mächtiger? Lesspipe benötigt sogar Pandoc für einige Konvertierungen. Ist Lesspipe jetzt nur komfortabler als Pandoc oder wo liegen die genauen Vorteile?

Goetz
Geschrieben von Goetz am 7. August 2024 um 12:04

Es ist der Komfortgewinn. Viele Programme und Dateitxpen werden unter einem Befehl automatisch gelesen.

Alex
Geschrieben von Alex am 7. August 2024 um 09:45

Oha, das kannte ich noch gar nicht. Vielen Dank Götz für diesen hochinformativen kleinen Artikel!

Goetz
Geschrieben von Goetz am 7. August 2024 um 12:03

Vielen Dank, freut mich :)

Shlitzohr Martinez
Geschrieben von Shlitzohr Martinez am 8. August 2024 um 08:15

Der Autor heißt offenbar Friebel –mit R– und die Eingabe hätte ruhig mit im Screenshot zu sehen sein dürfen. Zufälligerweise sind hier (Debian stable) die Zutaten installiert, also libreoffice, less, lesspipe, markdown, pandoc u.s.w., trotzdem wird 'lesspipe.sh' nicht gefunden. Da fehlt also noch etwas.

:~/Desktop$ less 1.odt /bin/bash: Zeile 1: lesspipe.sh: Kommando nicht gefunden. "1.odt" may be a binary file. See it anyway?

Danke und LG

Enno
Geschrieben von Enno am 8. August 2024 um 15:34

Hier ist lesspipe installiert, aber nicht lesspipe.sh; siehe die Ausgabe von less $(which lesspipe)

Shlitzohr Martinez
Geschrieben von Shlitzohr Martinez am 8. August 2024 um 19:42

Danke. Ja, die Fehlermeldung schließt zumindest nicht aus, dass "lesspipe.sh" nicht vorhanden ist ;)

Dein less $(which lesspipe) wirft jedoch alles mögliche aus.

Gefunden hatte ich lesspipe.sh nicht. Darauf hin habe ich dann das Skript heruntergeladen und nach ~/.local/lpipe/ verfrachtet, um in .bashrc darauf zu verweisen. Tatsächlich war nunmehr diese Fehlermeldung auch weg.

Eines meiner .odt konnte ich trotzdem nicht so wirklich ansehen, es mag aber auch sein, dass (a) noch immer etwas nicht gefunden wurde, bzw. (b) ich es einfach falsch* verwende ... "less test.odt" ergibt...


==> (lesspipe 2.13) append : to filename to view the original odt file

(END)

Was muss ich stattdessen eingeben? Etwa ein ":" dahinter? Vorhanden sind hier, wie gesagt, u.a. pandoc und libreoffice.

Ein "less test.odt:" ergibt den binären Inhalt/ "Buchstabensalat". Es wird somit also tatsächlich etwas gelesen und angezeigt, es ist aber für mich (so) (noch) nicht lesbar.

Götz
Geschrieben von Götz am 9. August 2024 um 20:38

Hallo Shlitzohr Martinez, erstmal vielen Dank für deinen Hinweis! Ich hab den Namen korrigiert - das sollte mir nicht passieren. Es ist wichtig, dass die Menschen richtig benannt werden.

Ich habe das nicht auf Debian getestet, aber hast du deine .bashrc oder .zshrc entsprechend angepasst? Auch bei einer Distribution kann es sein, dass es nicht automatisch passiert.

Den Doppelpunkt brauchst du nur, wenn du eine spezifische Datei aus einem Archiv lesen möchtest, ansonsten ist es das typische less testdatei.odt

Shlitzohr Martinez
Geschrieben von Shlitzohr Martinez am 14. August 2024 um 18:35

Götz, vielen Dank! – ...Ich habe es nochmal probiert:

Ich hatte wie gesagt alles schon drauf, bis auf das Skript, d.h. die Datei 'lesspipe.sh'. Diese hatte ich in ~/.local/lpipe/lesspipe.sh abgelegt und die .bashrc entsprechend eingerichtet, ALLERDINGS:

https://wiki.debian.org/Xsession#User_configuration

Was ich vergessen hatte. Für eine Debian Standardinstallation gilt die .xsessionrc - d.h. sobald man den Eintrag aus der .bashrc nach .xsessionrc verschiebt, geht es mit 'less test.odt' ganz wunderbar :)


PS: Ich hatte mich u.a. auch gefragt, ob man etwa 'pandoc' oder eines der anderen Tools wie libreoffice irgendwo im Befehl verwenden müsse, was offenbar nicht der Fall ist.