bat

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


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:

  1. ⚓︎ Installation von Programmen

  2. ⚓︎ Ein einzelnes Paket installieren

  3. ⚓︎ Ein Terminal öffnen

bat_logo.png 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:

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]:

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:

bsp_ausgabe.png

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.