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/
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?
Es ist der Komfortgewinn. Viele Programme und Dateitxpen werden unter einem Befehl automatisch gelesen.
Oha, das kannte ich noch gar nicht. Vielen Dank Götz für diesen hochinformativen kleinen Artikel!
Vielen Dank, freut mich :)
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
Hier ist lesspipe installiert, aber nicht lesspipe.sh; siehe die Ausgabe von
less $(which lesspipe)
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.
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
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.