Geekzeug

Hübsches Kätzchen dank Fledermaus – Eye-Candy statt cat

Konkatenation - was für ein schönes Wort. Um so erstaunlicher, dass die cat-Ausgabe so fade ist. Batcat kommt zur Hilfe.

Wie gibt man im Terminal mehrere Texte am Stück aus? Man konkateniert – aka verkettet – sie, mit dem absolut nicht katzenartigen Programm cat. Auch wenn es zu Katzenmissbrauch führt, aber das ist ein anderes Thema. Doch cat ist ebenso das Standardprogramm zum Anzeigen zumindest kurzer Texte im Terminal. Batcat ist ein viel besserer Ersatz: Hübscher und nützlicher!

Was kann Batcat?

Zunächst mal: Batcat kann, was auch cat kann. Allerdings ist die cat-Ausgabe wirklich nur das absolute Minimum, reiner, einfarbiger Text. Das einzige, was cat sonst noch kann, ist das Visualisieren von nicht druckbaren Zeichen. Aber wie der Name ja schon sagt, ist die Kernaufgabe auch das Konkatenieren und nicht das Bereitstellen einer lesbaren Version.

Das wiederum wird in der Regel mit Tools wie more (hier in unserer Terminal-Basics-Serie) oder dem komplexeren less erledigt. Less hat etliche Features: In vielen Abstufungen fortschreiten, nach Mustern suchen, Dateien wechseln, Ausgabe anpassen, zum Editor wechseln, ohne less schließen zu müssen und vieles mehr.

Batcat gibt kurze Texte direkt wie cat aus und für längere Texte nutzt es less. In beiden Formen macht Batcat die Ausgabe allerdings wesentlich hübscher – dank Syntax Highlighting. Und dazu gibt es passend auch Zeilennummerierung. Das macht das Lesen von Skripten und sonstigen Quelltexten wie Markdown- oder HTML-Dokumenten wesentlich einfacher.

batcat-screenshot
Ist es nicht schön? Ist es nicht wunderwunderschön?

Weitere Features

Batcat hat noch ein paar wirklich coole Features. Zum Beispiel hat das CLI-Tool ein Herz für Screenshotter: Der Dateiname wird bei der Ausgabe oben mit angegeben und kann manuell gesetzt werden. Das ist zum einen praktisch, wenn man mal eben einen Screenshot von einer Testdatei machen möchte, die dann nicht „mein-scheiss-foobar.sh“ heißen soll … Naja, eher wohl, wenn man Batcat nicht mit einer Datei, sondern STDIN füttert – zumal dann die angegebene Dateierweiterung für das passende Highlighting sorgt:

echo 'cat foobar && ls /var' | batcat --file-name=mein-skript.sh

Das führt zu dieser Ausgabe:

batcat-screenshot mit dateinamen.
STDIN-Input plus Dateiname

Ohne den „–file-name“-Parameter und das abschließende „.sh“ würde der Text schlicht einfarbig ausgegeben.

Ebenfalls nützlich: Hervorhebung von Zeilenbereichen:

batcat --highlight-line 4:10

Das Ergebnis:

batcat-screenshot mit highlight.
Unterlegte Zeilen vereinfachen den Fokus

Nun etwas für Freunde von Log-Dateien: Das Kommando tail -f zum Monitoren von Log-Dateien kann an Batcat weiterleiten:

tail -f /var/log/kern.log | batcat --paging=never -l log

Das paging-Argument verhindert den Einsatz von less, das für die fortlaufende Anzeige natürlich nicht benötigt wird. Dann wird noch das Log-Format angegeben, um das korrekte Highlighting zu bekommen. Und das ist doch mal hübscher und vor allem übersichtlicher als ein pures tail, oder?

batcat-screenshot mit log.
Log-Datei mit tail -f und Batcat

Noch viel besser, und mein persönliches Highlight, ist aber die Git-Anbindung! Batcat kann als Diff-Viewer genutzt werden, also die Unterschiede zwischen einer bearbeiteten Version einer Datei und der im Index vorhandenen Version anzuzeigen:

batcat --diff foobar.md

In der Ausgabe bekommt Ihr dann nur die geänderten Zeilen plus jeweils zwei davor und dahinter sowie Markierungen über hinzugefügte oder gelöschte Zeilen.

batcat-screenshot mit diff.
Batcat als Diff-Viewer für Git

Batcat bietet noch einige weitere Funktionen, kann angepasst werden (zum Beispiel more statt less) und kann wirklich allen empfohlen werden, die ab und an in Logs, Skripte, Markup-Texte oder Config-Dateien schauen müssen. Ach was heißt müssen, mit Batcat muss man nicht müssen, da will man wollen, woll?!

Mehr zum Thema CLI und Terminal.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Schaltfläche "Zurück zum Anfang"
Schließen

Ooopsi!

Bitte deaktiviere Deinen Adblocker.