[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] '''cat''' ist ursprünglich zum Zusammenfügen von Dateien gedacht (von con'''cat'''enate = verketten, verknüpfen). Häufig wird cat aber als (einfacher) Pager zum Anzeigen von Dateiinhalten im Terminal eingesetzt (was letztendlich dem "Verketten" von Dateiinhalten mit dem Bildschirm entspricht). Im Vergleich zu anderen Pagern wie [:more:] oder [:less:] ist cat weniger leistungsfähig. Dafür eignet sich cat besser für kleine bzw. kurze Dateien und insbesondere zur Verwendung in Kombination mit [:Shell/Umleitungen:Umleitungen] (> und Pipe-Operator |), da cat den Dateiinhalt "in einem Rutsch" auf dem Terminal (bzw. genau genommen auf die Standardausgabe) ausgibt. Außerdem ist cat gut zum schnellen Anlegen von kleineren Dateien geeignet, als Alternative zu den "großen" Editoren wie z.B. [:VIM:]. = Installation = Das Programm '''cat''' ist im essentiellen Paket * '''coreutils''' von Ubuntu enthalten und ist deshalb auf jedem System installiert. = Syntax = cat wird mit folgendem Syntax in einem Terminal [1] aufgerufen: {{{#!vorlage Befehl cat OPTIONEN DATEI(EN) }}} Mit cat können in einem Aufruf mehrere Dateien hintereinander angezeigt werden. Die Dateinamen müssen durch ein Leerzeichen getrennt sein. Der Befehl `tac` kehrt die Reihenfolge um, also die letzte Zeile zuerst. = Optionen = Der Befehl cat kennt verschiedene Optionen: {{{#!vorlage Tabelle <-2 rowclass="title" :> '''cat - Optionen''' +++ '''Option''' '''Beschreibung''' +++ ``-b`` oder ``--number-nonblank`` Gibt eine Zeilennummer am Anfang jeder nicht-leeren Zeile aus +++ ``-n`` oder ``--number`` Gibt eine Zeilennummer am Anfang jeder Zeile aus - egal ob die Zeile leer ist oder nicht +++ ``-E`` oder ``--show-ends`` Gibt ein Dollarzeichen $ am Ende jeder Zeile aus +++ ``-s`` oder ``--squeeze-blank`` Die Ausgabe von zusätzlichen Leerzeilen wird unterdrückt, d.h. es wird maximal eine Leerzeile zwischen zwei Textzeilen angezeigt, auch wenn in der Datei mehrere Leerzeilen stehen sollten. +++ ``-T`` oder ``--show-tabs`` Tabulatoren werden als ``^I`` angezeigt +++ ``-v`` oder ``--show-nonprinting`` Es werden alle Steuerzeichen außer LF (Linefeed) und Tabulatoren angezeigt +++ ``-e`` entspricht ``-vE`` +++ ``-t`` entspricht ``-vT`` +++ ``-A`` oder ``--show-all`` entspricht ``-vET`` +++ ``--help`` Hilfe anzeigen +++ ``--version`` Versionsnummer anzeigen }}} = Dateien mit cat anlegen = Erfolgt der Aufruf von cat ohne Angabe einer Datei, liest cat von der Standardeingabe (also in der Regel die Tastatur) und schreibt direkt auf die Standardausgabe (in der Regel den Bildschirm). Dateien lassen sich mit cat auch anlegen, indem man cat ohne Datei aufruft, die Ausgabe aber in eine Datei umleitet, z.B.: {{{#!vorlage Befehl cat > testdatei.txt lalala lalelu }}} Die Eingabe beendet man mit der Markierung `` (End of file) bzw. praktisch mit der Tastenkombination [[Vorlage(Tasten, STRG+D)]]. {{{#!vorlage Befehl cat testdatei.txt }}} {{{ lalala lalelu }}} = Dateien mit cat zusammenführen = Wie oben bereits erwähnt, ist die eigentliche Funktion von cat das Zusammenführen von mehreren Dateien oder mit [:split:] aufgeteilten Dateien. {{{#!vorlage Befehl cat Seite_1.txt Seite_2.txt > text_komplett.txt }}} In diesem Beispiel werden die Textdateien '''seite_1.txt''' und '''seite_2.txt''' zusammengeführt, wobei '''seite_2.txt''' an '''seite_1.txt''' angehängt wird. Die Ausgabe wird in die Datei '''text_komplett.txt''' geschrieben. {{{#!vorlage Befehl cat Datei.zip.01 Datei.zip.02 > Datei_komplett.zip }}} In diesem Beispiel wird eine Zip-Datei wieder zu einer großen Datei zusammengeführt. = Überflüssige cats = Nicht verboten, aber überflüssig ist die Verwendung des Befehls beispielsweise in Kombination mit [:grep:]: {{{#!vorlage Befehl cat DATEINAME | grep SUCHBEGRIFF }}} Hintergrund: Programme wie grep oder [:less:] können Dateien selbst öffnen. Besser (und kürzer) ist daher der folgende Befehl, der das gleiche Ergebnis liefert: {{{#!vorlage Befehl grep SUCHBEGRIFF DATEINAME }}} Siehe auch den {en} [http://porkmail.org/era/unix/award.html Useless Use of Cat Award]. = Links = * [wikipedia_en:Cat_(Unix):cat in der Wikipedia] * [:bat:] - eine modernisierte Variante von `cat`, die zum Beispiel die Syntaxhervorhebung der Ausgabe beherrscht * [:Shell/Befehlsübersicht:] {Übersicht} Übersicht über verschiedene Shell-Befehle # tag: Shell