[[Vorlage(Getestet, jammy)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Paketinstallation_DEB: Ein einzelnes Paket installieren] [:Terminal: Ein Terminal öffnen] }}} ##[[Inhaltsverzeichnis()]] [[Bild(bat_logo.png, 60 align=left)]] [github:sharkdp/bat: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]: {{{#!vorlage Paketinstallation bat, universe }}} Allerdings je nach Ubuntu-Version in einer (sehr) alten Version, so dass der manuellen Installation der Vorzug gegeben werden sollte. == Manuelle Paketinstallation == Auf der [github:sharkdp/bat/releases:Releases-Seite] des Projekts gibt es die aktuelle Version von bat als DEB-Paket. Dieses kann heruntergeladen und manuell installiert werden[2]. [[Vorlage(Fremd, Paket)]] == Paket von cargo == Alternativ kann bat auch über den Rust-Paketmanager [:cargo:] installiert werden: {{{#!vorlage Befehl cargo install bat }}} [[Vorlage(Fremd, Software)]] = Benutzung = Die allgemeine Syntax von bat lautet: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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 {{{#!vorlage 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 {{{#!vorlage Befehl bat --list-languages }}} Standardmäßig, also ohne weitere Optionen, sieht die Ausgabe von bat so aus: [[Bild(bsp_ausgabe.png, 250, align=right)]] {{{#!vorlage Befehl 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: {{{#!vorlage Tabelle <-2 tableclass="zebra_start3" rowclass="titel" :> Optionen von bat +++ < rowclass="kopf" :>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 [github:sharkdp/bat#customization:in der Dokumentation] zu finden. #tag: Shell, Programmierung, Rust