bat
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.04 Jammy Jellyfish
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
bat ist eine moderne Variante von cat mit gleicher Funktionalität, also mehrere Dateien zu einer zusammenfügen und die Ausgabe von Dateien auf die Standardausgabe.
Die Hauptunterschiede liegen bei bat in:
Syntaxhervorhebung für über 150 Programmier- und Auszeichnungssprachen
Anzeige von Zeilennummern
Anzeige nichtdruckbarer Zeichen
Anzeige der Unterschiede von in Git verwalteten Dateien
Außer für Linux in diversen Architekturen ist bat auch für Windows- und macOS-Rechner mit x86-Prozessoren verfügbar.
Installation¶
Aus den Paketquellen¶
bat ist ab Focal in den Paketquellen enthalten[1]:
bat (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install bat
Oder mit apturl installieren, Link: apt://bat
Allerdings je nach Ubuntu-Version in einer (sehr) alten Version, so dass der manuellen Installation der Vorzug gegeben werden sollte.
Manuelle Paketinstallation¶
Auf der Releases-Seite des Projekts gibt es die aktuelle Version von bat als DEB-Paket. Dieses kann heruntergeladen und manuell installiert werden[2].
Hinweis!
Fremdpakete können das System gefährden.
Paket von cargo¶
Alternativ kann bat auch über den Rust-Paketmanager cargo installiert werden:
cargo install bat
Hinweis!
Fremdsoftware kann das System gefährden.
Benutzung¶
Die allgemeine Syntax von bat lautet:
bat [OPTION(EN)] DATEI(EN)
Wird keine DATEI
angegeben, liest das Programm von der Standardeingabe. Die Ausgabe erfolgt immer auf die Standardausgabe.
Eine Hilfe im Terminal für bat kann ausgegeben werden:
bat -h ##kurze Hilfe, passt auf eine Bildschirmseite bat --help ##sehr ausführliche Hilfe über mehrere Bildschirmseiten
Dateien zusammenführen¶
Die Syntax zum Zusammenführen von Dateien ist identisch mit cat. Der Befehl
bat datei1.txt datei2.txt > datei3.txt
führt die Dateien datei1.txt und datei2.txt in die Datei datei3.txt zusammen.
Dateien anzeigen¶
Die komplette Liste der Syntaxhervorhebung für über 150 Programmier- und Auszeichnungssprachen erhält man durch
bat --list-languages
Standardmäßig, also ohne weitere Optionen, sieht die Ausgabe von bat so aus:
bat demo.py
Ausgabe (in einem Terminal auch farbig):
───────┬────────────────────────────────────────────────────────────────────────── │ File: demo.py ───────┼────────────────────────────────────────────────────────────────────────── 1 │ from math import sqrt 2 │ 3 │ def square_root(number): 4 │ result = sqrt(number) 5 │ return result 6 │ 7 │ if __name__ == '__main__': 8 │ print(square_root(16)) ──────────────────────────────────────────────────────────────────────────────────
bat erkennt normalerweise automatisch die Programmier-/Auszeichnungssprache der Datei. Man kann diese jedoch auch über eine Option vorgeben, siehe weiter unten. Bei Ausgaben, die länger als eine Bildschirmseite sind, verwendet bat standardmäßig einen Pager, mit dem man dann durch die Ausgabe blättern kann. Unter Linux ist dies less.
Befindet man sich in einem Git-Repo und ruft bat mit einer Datei auf, die im Repo eingecheckt ist, werden zusätzlich die Zeilen markiert, die sich im Vergleich zum letzten Commit geändert haben.
Optionen¶
bat kennt eine Reihe von Optionen:
Optionen von bat | |
Option | Beschreibung |
-l SPRACHE | Die Programmier-/Auszeichnungssprache SPRACHE für die Syntaxhervorhebung nutzen. |
-p | Ausgabe ohne Zeilennummern, Rahmen etc. Entspricht der Ausgabe von cat, aber mit Syntaxhervorhebung. |
-n | Ausgabe der Zeilennummer vor jeder Zeile, aber kein Rahmen um die Ausgabe. |
-A | Zeigt auch nichtdruckbare Zeichen wie Leerzeichen und Tabs an. |
-P | Datei komplett ohne Pager ausgeben. |
-d | Nur für ein Git-Repo: Gibt nur die Zeilen aus, die sich im Vergleich zum letzten Commit geändert haben. |
Alle weiteren Optionen sind in der Hilfe ausgeführt.
bat ist, sofern Bedarf daran besteht, individuell anpassbar. Es können sowohl eigene Themes erstellt als auch Syntaxhervorhebung für weitere Sprachen hinzugefügt werden. Details dazu sind in der Dokumentation zu finden.