Cat: Unterschied zwischen den Versionen

Aus Foxwiki
Kamalalhassan (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
K Textersetzung - „Man-Pages“ durch „Man-Page“
 
(126 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''cat''' - Dateien aneinanderhängen und in die Standardausgabe schreiben


=Bezeichnung=
= Beschreibung =
Mit dem Befehl ''cat'' können wir einzelne oder mehrere Dateien erstellen, Dateien enthalten, Dateien verketten und Ausgaben in Terminals oder Dateien umleiten.
* DATEI(en) auf Standardausgabe verketten.
* liest ohne DATEI oder wenn DATEI - ist, aus der Standardeingabe.
* Mit dem Befehl ''cat'' können wir einzelne oder mehrere Dateien erstellen, Dateien enthalten, Dateien verketten und Ausgaben in Terminals oder Dateien umleiten.
* <tt>'''cat'''</tt> liest beliebige Dateien und schreibt sie ohne Veränderung in die Standardausgabe.
* Durch Umlenkung der Ausgabe auf eine Datei Ausgabeumleitung können so Dateien verkettet werden.
* Außerdem wird <tt>cat</tt> häufig benutzt, um Dateien an Programme zu übergeben, die nur von der Standardeingabe lesen. (Solche Programme werden im allgemeinen als Filter bezeichnet.)
* Für die Übergabe steht entweder die Ausgabeumlenkung der Shell mit `>' und `>>' zur Verfügung, oder die Ausgabe wird durch eine Pipeline an den Filter weitergeleitet.
* Ohne DATEI oder wenn DATEI »-« ist, Standardeingabe lesen.


=Übersicht=
= Installation =
  cat [OPTION] [FILE]...
= Syntax =
  $ '''cat''' [-benstuvAET] [-number] [-number-nonblank] [-squeeze-blank] [-show-nonprinting] [-show-ends] [-show-tabs] [-show-all] [''Datei'' ...]
$ '''cat [OPTION]… [DATEI]… '''


=Optionen=
== Optionen ==
{| class="wikitable"
{| class="wikitable sortable options"  
! Kurz !! Lang !! Wirkung
|-
|-
! Option !! Beschreibung
| -A || Entspricht -vET ||
|-
|-
| -b oder --number-nonblank||Gibt eine Zeilennummer am Anfang jeder nicht-leeren Zeile aus
| -b || || Nummerieren Sie nicht leere Ausgabezeilen.
|-
|-
| -n oder --number||Gibt eine Zeilennummer am Anfang jeder Zeile aus - egal ob die Zeile leer ist oder nicht
| -e || || Entspricht -vE.
|-
|-
| -E oder --show-ends||Gibt ein Dollarzeichen $ am Ende jeder Zeile aus
| -E || || Zeigen Sie $ am Ende jeder Zeile an.
|-
|-
| -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.
| -n || || Nummerieren Sie alle Ausgangsleitungen.
|-
|-
| -T oder --show-tabs||Tabulatoren werden als ^I angezeigt
| -s || || Unterdrücken Sie wiederholte leere Ausgabezeilen.
|-
|-
| -v oder --show-nonprinting||Es werden alle Steuerzeichen außer LF (Linefeed) und Tabulatoren angezeigt
| -t || || Entspricht -vT.
|-
|-
| -e||entspricht -vE
| -T || || TAB-Zeichen als ^ I anzeigen.
|-
|-
| -t||entspricht -vT
| -v || || Notation ohne Druck anzeigen, außer für LFD und TAB.
|-
| -A || --show-all || äquivalent zu -vET
|-
| -b || --number-nonblank || nichtleere Ausgabezeilen nummerieren, überschreibt -n
|-
| -e || || äquivalent zu -vE
|-
| -E || --show-ends || $ am Ende jeder Zeile ausgeben
|-
| -n || --number || alle Ausgabezeilen nummerieren
|-
| -s || --squeeze-blank || aufeinander folgende Leerzeilen unterdrücken
|-
| -t || || äquivalent zu -vT
|-
| -T || --show-tabs || Tabulator‐Zeichen als ^I ausgeben
|-
| -u ||  || (ignoriert)
|-
| -v || --show-nonprinting || ^‐ und M‐Notation benutzen, außer für LFD und Tabulatoren.
|-
|  ||  --help  || zeigt Hilfeinformationen an und beendet das Programm.
|-
|  || --version  || gibt Versionsinformationen aus und beendet das Programm.
|-
|-
| -A oder --show-all||entspricht -vET
| -b || || alle nicht leeren Zeilen erhalten eine Zeilennummer
|-
|-
| --help||Hilfe anzeigen
| | <tt>'''-e '''</tt>
| | das gleiche wie <tt>-vE</tt>
|-
|-
| --version||Versionsnummer anzeigen
|  | <tt>'''-n '''</tt>
|  | sämtliche Zeilen werden numeriert
|-
|  | <tt>'''-s '''</tt>
|  | mehrere leere Zeilen in Folge werden zu einer einzigen leeren Zeile zusammengefaßt
|-
|  | <tt>'''-t '''</tt>
|  | das gleiche wie <tt>-vT</tt>
|-
|  | <tt>'''-u '''</tt>
|  | ohne Funktion
|-
|  | <tt>'''-v '''</tt>
|  | alle Kontrollzeichen außer TAB und NEWLINE werden angezeigt
|-
|  | <tt>'''-A '''</tt>
| das gleiche wie <tt>-vET</tt>
|-
|  | <tt>'''-E '''</tt>
|  | gibt ein `<tt>$</tt>' Zeichen am Ende jeder Zeile aus
|-
|  | <tt>'''-T '''</tt>
|  | die TAB werden als <tt>^I</tt> angezeigt
|-
|}


| ||
== Parameter ==
= Anwendung =
== Übersicht ==
$ cat
Oder
$ cat > filename
Oder
$ cat [OPTION] [FILE]...
Oder
$ cat file1
$ cat > file2
$ cat file3 | command
$ cat file4 | grep something


|}
== Beispiele ==
Mit dem <tt>cat</tt>-Kommando können Dateien ausgedruckt werden. Mit dem Kommando
 
cat Adressenliste > /dev/lp1
 
können Sie die Datei <tt>Adressenliste</tt> direkt der Gerätedatei /dev/lp1 zuführen, die den ersten parallelen Druckerport im System darstellt. Diese Methode ist aber sehr unelegant.
 
Sie umgeht und blockiert den Druckerspooler <tt>lpd</tt>, der über die reine Auslieferung hinaus noch die Formatierung der Dokumente erledigen kann.
 
Wenn ein Druckerdämon installiert ist, sollten Sie die ,,direkte`` Methode nur in Ausnahmefällen benutzen.
 
Wenn Sie zwei Dateien durch Umlenkung der Ausgabe von <tt>cat</tt> verketten wollen, müssen Sie den Standardausgabekanal immer in eine dritte Datei zielen lassen.
 
cat foo bar > foo
cat: foo: input file is output file
 
führt NICHT zum erwünschten Ergebnis. Die Datei `foo' wird von der Shell vor der Ausführung von <tt>cat</tt> gelöscht, um die Ausgabe des Kommandos dorthin umzulenken. <tt>cat</tt> erkennt noch, dass eine Eingabedatei mit der Ausgabedatei übereinstimmt, Ihre Daten sind aber bereits verloren.
 
Ein verwandtes Problem kann beim Anhängen von Daten an eine bestehende Datei entstehen. Der Befehl
 
$ cat foo bar >> foo
cat: foo: input file is output file
$ _
 
$ '''cat f - g6'''
Gibt den Inhalt von f aus, dann die Standardeingabe, schließlich den Inhalt von g.
 
$ '''cat'''
* Kopiert die Standardeingabe in die Standardausgabe.
* würde zu einem ,,Kurzschluß`` führen, weil der schreibende Dateizeiger immer dem lesenden eine Dateilänge vorauseilen würde. Nicht unbedingt das gewünschte Ergebnis.
* <tt>cat</tt> erkennt diesen Fehler und verweigert die Ausführung. Die Datei <tt>foo</tt> bleibt also unverändert erhalten.
 
== Eine Datei mit dem Befehl cat anzeigen ==
$ cat filename


=Beispiel=
$ cat /path/to/file


*'''1 Inhalt der Datei anzeigen'''
  $ cat /etc/passwd
Im folgenden Beispiel wird der Inhalt der Datei / etc / passwd angezeigt.
  # cat /etc/passwd


  root:x:0:0:root:/root:/bin/bash
  root:x:0:0:root:/root:/bin/bash
  bin:x:1:1:bin:/bin:/sbin/nologin
  daemon:x:1:1:daemon:/usr/sbin:/bin/sh
  narad:x:500:500::/home/narad:/bin/bash
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
  games:x:5:60:games:/usr/games:/bin/sh
....
...


*'''2 Anzeigen des Inhalts mehrerer Dateien im Terminal'''
== Mehrere Dateien mit dem Befehl cat anzeigen ==
Im folgenden Beispiel wird der Inhalt der Datei test und test1 im Terminal angezeigt.
  $ cat test1 test2
  # cat test test1


  Hello everybody
  Hello everybody
  Hi world,
  Hi world,


*'''3 Erstellen Sie eine Datei mit Cat Command'''
== Erstellen eine Datei mit dem Befehl cat ==
Wir werden eine Datei namens test2 file mit dem folgenden Befehl erstellen.
Geben Sie Folgendes ein, um eine Datei mit dem Namen "test.txt" zu erstellen:
  # cat >test2
  $ cat >test.txt


*'''4 Verwenden Sie Cat Command mit More & Less Options Optionen'''
== Anzeigen einer großen Datei Mit Pipes ==
Wenn eine Datei mit einer großen Anzahl von Inhalten nicht in das Ausgabeterminal passt und der Bildschirm sehr schnell nach oben rollt, können wir mit dem Befehl cat mehr und weniger Parameter verwenden, wie oben gezeigt.
Wenn eine Datei mit einer großen Anzahl von Inhalten nicht in das Ausgabeterminal passt und der Bildschirm sehr schnell nach oben rollt, können wir mit dem Befehl cat mehr und weniger Parameter verwenden, wie oben gezeigt.
  # cat song.txt | more
  $ cat song.txt | more
# cat song.txt | less


*'''5 Zeilennummern in Datei anzeigen'''
$ cat song.txt | less
Mit der Option -n können Sie die Zeilennummern einer Datei song.txt im Ausgabeterminal anzeigen.
 
  # cat -n song.txt
== Kombinieren zwei oder mehr Dateien mit cat ==
Sie können zwei Dateien kombinieren und eine neue Datei mit dem Namen report.txt erstellen.
$ cat score.txt names.txt > report.txt
 
$ cat report.txt
 
== Daten an eine Textdatei anhängen ==
 
$ cat >>test.txt
 
== Nummeriert alle Ausgabeleitungen ==
$ cat -n filename
  $ cat -n song.txt


  1  "Heal The World"
  1  "Heal The World"
Zeile 76: Zeile 195:
  8  And If You Really Try
  8  And If You Really Try


*'''6 Mehrere Dateien gleichzeitig anzeigen'''
== Nicht druckbare Zeichen anzeigen ==
Im folgenden Beispiel haben wir drei Dateien test, test1 und test2 und können den Inhalt dieser Datei wie oben gezeigt anzeigen. Wir müssen jede Datei mit trennen; (semi colon).
 
  # cat test; cat test1; cat test2
Geben Sie Folgendes ein, um TAB-Zeichen als ^ I anzuzeigen:
  $ cat -T filename
 
Geben Sie Folgendes ein, um $ am Ende jeder Zeile anzuzeigen:
$ cat -E filename


This is test file
Verwenden Sie die Notation ^ und M, außer LFD und TAB, und zeigen Sie alle nicht druckbaren Elemente an:
This is test1 file.
  $ cat -v filename
  This is test2 file.


*'''7 Verwenden Sie die Standardausgabe mit dem Umleitungsoperator'''
Geben Sie Folgendes ein, um alle anzuzeigen:
Wir können die Standardausgabe einer Datei in eine neue Datei umleiten, ansonsten eine vorhandene Datei mit dem Symbol,Inhalt von test1 wird durch den Inhalt der Testdatei überschrieben.
$ cat -A fileName
# cat test > test1
 
== Problembehebung ==
Nach der Anzeige einer Binärdatei mit cat ist reaggiert das Terminal nicht mehr normal.
* Das Terminal kann mit <tt>'''reset '''</tt>neu initialisiert werden.
 
= Dokumentation =
== RFC ==
== Man-Page ==
# cat(1)
 
== Info-Pages ==
# info '(coreutils) cat invocation'
 
== Projekt ==


= Links =
= Links =
== Siehe auch ==
== Siehe auch ==
# [[Linux:Befehl:]]
# tac(1)
 
== Weblinks ==
# https://www.gnu.org/software/coreutils/cat
 
 
 




== Extern ==
[[Kategorie:Linux/Datei/Ausgabe]]
# https://wiki.ubuntuusers.de
[[Kategorie:Linux/Befehl]]
[[Kategorie:Coreutils]]


[[Category:Linux:Dateiverwaltung]]
{{DEFAULTSORT:cat}}
[[Category:Linux:Bash]]

Aktuelle Version vom 6. November 2024, 12:25 Uhr

cat - Dateien aneinanderhängen und in die Standardausgabe schreiben

Beschreibung

  • DATEI(en) auf Standardausgabe verketten.
  • liest ohne DATEI oder wenn DATEI - ist, aus der Standardeingabe.
  • Mit dem Befehl cat können wir einzelne oder mehrere Dateien erstellen, Dateien enthalten, Dateien verketten und Ausgaben in Terminals oder Dateien umleiten.
  • cat liest beliebige Dateien und schreibt sie ohne Veränderung in die Standardausgabe.
  • Durch Umlenkung der Ausgabe auf eine Datei Ausgabeumleitung können so Dateien verkettet werden.
  • Außerdem wird cat häufig benutzt, um Dateien an Programme zu übergeben, die nur von der Standardeingabe lesen. (Solche Programme werden im allgemeinen als Filter bezeichnet.)
  • Für die Übergabe steht entweder die Ausgabeumlenkung der Shell mit `>' und `>>' zur Verfügung, oder die Ausgabe wird durch eine Pipeline an den Filter weitergeleitet.
  • Ohne DATEI oder wenn DATEI »-« ist, Standardeingabe lesen.

Installation

Syntax

$ cat [-benstuvAET] [-number] [-number-nonblank] [-squeeze-blank] [-show-nonprinting] [-show-ends] [-show-tabs] [-show-all] [Datei ...] 

$ cat [OPTION]… [DATEI]… 

Optionen

Kurz Lang Wirkung
-A Entspricht -vET
-b Nummerieren Sie nicht leere Ausgabezeilen.
-e Entspricht -vE.
-E Zeigen Sie $ am Ende jeder Zeile an.
-n Nummerieren Sie alle Ausgangsleitungen.
-s Unterdrücken Sie wiederholte leere Ausgabezeilen.
-t Entspricht -vT.
-T TAB-Zeichen als ^ I anzeigen.
-v Notation ohne Druck anzeigen, außer für LFD und TAB.
-A --show-all äquivalent zu -vET
-b --number-nonblank nichtleere Ausgabezeilen nummerieren, überschreibt -n
-e äquivalent zu -vE
-E --show-ends $ am Ende jeder Zeile ausgeben
-n --number alle Ausgabezeilen nummerieren
-s --squeeze-blank aufeinander folgende Leerzeilen unterdrücken
-t äquivalent zu -vT
-T --show-tabs Tabulator‐Zeichen als ^I ausgeben
-u (ignoriert)
-v --show-nonprinting ^‐ und M‐Notation benutzen, außer für LFD und Tabulatoren.
--help zeigt Hilfeinformationen an und beendet das Programm.
--version gibt Versionsinformationen aus und beendet das Programm.
-b alle nicht leeren Zeilen erhalten eine Zeilennummer
-e das gleiche wie -vE
-n sämtliche Zeilen werden numeriert
-s mehrere leere Zeilen in Folge werden zu einer einzigen leeren Zeile zusammengefaßt
-t das gleiche wie -vT
-u ohne Funktion
-v alle Kontrollzeichen außer TAB und NEWLINE werden angezeigt
-A das gleiche wie -vET
-E gibt ein `$' Zeichen am Ende jeder Zeile aus
-T die TAB werden als ^I angezeigt

Parameter

Anwendung

Übersicht

$ cat

Oder

$ cat > filename

Oder

$ cat [OPTION] [FILE]...

Oder

$ cat file1
$ cat > file2
$ cat file3 | command
$ cat file4 | grep something

Beispiele

Mit dem cat-Kommando können Dateien ausgedruckt werden. Mit dem Kommando

cat Adressenliste > /dev/lp1

können Sie die Datei Adressenliste direkt der Gerätedatei /dev/lp1 zuführen, die den ersten parallelen Druckerport im System darstellt. Diese Methode ist aber sehr unelegant.

Sie umgeht und blockiert den Druckerspooler lpd, der über die reine Auslieferung hinaus noch die Formatierung der Dokumente erledigen kann.

Wenn ein Druckerdämon installiert ist, sollten Sie die ,,direkte`` Methode nur in Ausnahmefällen benutzen.

Wenn Sie zwei Dateien durch Umlenkung der Ausgabe von cat verketten wollen, müssen Sie den Standardausgabekanal immer in eine dritte Datei zielen lassen.

cat foo bar > foo
cat: foo: input file is output file

führt NICHT zum erwünschten Ergebnis. Die Datei `foo' wird von der Shell vor der Ausführung von cat gelöscht, um die Ausgabe des Kommandos dorthin umzulenken. cat erkennt noch, dass eine Eingabedatei mit der Ausgabedatei übereinstimmt, Ihre Daten sind aber bereits verloren.

Ein verwandtes Problem kann beim Anhängen von Daten an eine bestehende Datei entstehen. Der Befehl

$ cat foo bar >> foo
cat: foo: input file is output file
$ _
$ cat f - g6

Gibt den Inhalt von f aus, dann die Standardeingabe, schließlich den Inhalt von g.

$ cat
  • Kopiert die Standardeingabe in die Standardausgabe.
  • würde zu einem ,,Kurzschluß`` führen, weil der schreibende Dateizeiger immer dem lesenden eine Dateilänge vorauseilen würde. Nicht unbedingt das gewünschte Ergebnis.
  • cat erkennt diesen Fehler und verweigert die Ausführung. Die Datei foo bleibt also unverändert erhalten.

Eine Datei mit dem Befehl cat anzeigen

$ cat filename
$ cat /path/to/file
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
....
...

Mehrere Dateien mit dem Befehl cat anzeigen

$ cat test1 test2
Hello everybody
Hi world,

Erstellen eine Datei mit dem Befehl cat

Geben Sie Folgendes ein, um eine Datei mit dem Namen "test.txt" zu erstellen:

$ cat >test.txt

Anzeigen einer großen Datei Mit Pipes

Wenn eine Datei mit einer großen Anzahl von Inhalten nicht in das Ausgabeterminal passt und der Bildschirm sehr schnell nach oben rollt, können wir mit dem Befehl cat mehr und weniger Parameter verwenden, wie oben gezeigt.

$ cat song.txt | more
$ cat song.txt | less

Kombinieren zwei oder mehr Dateien mit cat

Sie können zwei Dateien kombinieren und eine neue Datei mit dem Namen report.txt erstellen.

$ cat score.txt names.txt > report.txt
$ cat report.txt

Daten an eine Textdatei anhängen

$ cat >>test.txt

Nummeriert alle Ausgabeleitungen

$ cat -n filename
$ cat -n song.txt
1  "Heal The World"
2  There's A Place In
3  Your Heart
4  And I Know That It Is Love
5  And This Place Could
6  Be Much
7  Brighter Than Tomorrow
8  And If You Really Try

Nicht druckbare Zeichen anzeigen

Geben Sie Folgendes ein, um TAB-Zeichen als ^ I anzuzeigen:

$ cat -T filename

Geben Sie Folgendes ein, um $ am Ende jeder Zeile anzuzeigen:

$ cat -E filename

Verwenden Sie die Notation ^ und M, außer LFD und TAB, und zeigen Sie alle nicht druckbaren Elemente an:

$ cat -v filename

Geben Sie Folgendes ein, um alle anzuzeigen:

$ cat -A fileName

Problembehebung

Nach der Anzeige einer Binärdatei mit cat ist reaggiert das Terminal nicht mehr normal.

  • Das Terminal kann mit reset neu initialisiert werden.

Dokumentation

RFC

Man-Page

  1. cat(1)

Info-Pages

  1. info '(coreutils) cat invocation'

Projekt

Links

Siehe auch

  1. tac(1)

Weblinks

  1. https://www.gnu.org/software/coreutils/cat