13.9. Bearbeitung von Dateien mit cat

Red Hat Linux stellt Ihnen ein Dienstprogramm zur Verfügung, das kurze Listen ordnet, diese Listen gruppiert und Ihnen Informationen zu Ihrem System liefert.

Dieses Dienstprogramm heißt cat, als Abkürzung für concatenate, was bedeutet, dass Dateien aneinandergereiht werden.

Mit Hilfe des Befehls cat wird auch der Inhalt einer ganzen Datei auf dem Bildschirm angezeigt (Wenn Sie z.B. cat filename.txt eingeben). Wenn die Datei sehr lang ist, wird die Anzeige sehr schnell aus Ihrem Bildschirm laufen. Um dies zu vermeiden, verwenden Sie einfach den Befehl cat filename.txt | less.

Mit Hilfe der Pipe (|) und dem less -Befehl wird die Datei seitenweise angezeigt. Sie können mit den Pfeil-Tasten vor- und zurückblättern. Weitere Informationen zur Verwendung von Pipes bei der Kombination von zwei getrennten Funktionen finden Sie unter Abschnitt 13.10.

13.9.1. Verwendung der Umleitung

Umleitung bedeutet die Änderung der Werte, die der Shell als Standardeingabe und Standardausgabe betrachtet.

Um die Standardausgabe umzuleiten, verwenden Sie das Symbol >. Wenn Sie > hinter den Befehl cat setzen (bzw. hinter jedes Dienstprogramm oder jede Applikation, die in der Standardausgabe geschrieben wird), wird die Standardausgabe in die nach diesem Symbol angegebene Datei umgeleitet.

Verwenden Sie zum Beispiel cat allein, wird genau das, was Sie in den Bildschirm eingegeben haben, auch wieder ausgegeben, sozusagen als Wiederholung der Eingabe. Das folgende Beispiel zeigt cat bei der Wiederholung jeder eingegebenen Zeile an:

Abbildung 13-5. Der cat-Befehl

Um die Ausgabe von cat in eine Datei umzuleiten, geben Sie folgendes am Shell-Prompt ein (wenn Sie die [Enter-Taste] drücken, gelangen Sie zur nächsten Leerzeile):

cat > sneakers.txt

Abbildung 13-6. Umleiten der Standardausgabe in eine Datei

Drücken Sie die [Enter-Taste], um zu einer Leerzeile zu gelangen und drücken Sie dann die Tastenkombination [Strg]-[D], um cat zu beenden.

Sehen Sie den Unterschied in Abbildung 13-6? Es werden keine doppelten Einträge angezeigt. Dies liegt an der Umleitung der Standardausgabe durch cat. Diese Umleitung wurde in eine von Ihnen ganz neu erstellte Datei vorgenommen, die Sie sneakers.txt genannt haben.

Die Datei befindet sich in dem Verzeichnis, in dem Sie waren, als Sie cat gestartet haben (Geben Sie ls ein, wenn Sie die Datei in der Liste sehen möchten).

Wie Sie nun bereits wissen, können Sie cat benutzen, um die Datei zu lesen. Geben Sie am Prompt Folgendes ein:

cat sneakers.txt

AchtungAchtung
 

Seien Sie vorsichtig beim Umleiten einer Ausgabe in eine Datei, weil es dabei leicht passieren kann, dass Sie eine bereits existierende Datei überschreiben! Vergewissern Sie sich daher, dass der Name der neuen, von Ihnen erstellten Datei nicht identisch mit einer bereits bestehenden Datei ist, es sei denn natürlich, Sie möchten letztere ersetzen.

Verwenden Sie die Umleitung nun noch einmal für eine andere Datei und nennen Sie diese Datei home.txt. In diesem Beispiel geben Sie den Befehl cat > home.txt ein, drücken Sie dann die [Enter-Taste], gefolgt von:

bring the coffee home
take off shoes
put on sneakers
make some coffee
relax!

Nun drücken Sie in einer leeren Zeile nochmals die Tastenkombination [Strg]-[D], um cat zu beenden.

Als nächstes verbinden Sie mit Hilfe von cat die Dateien home.txt und sneakers.txt und leiten die Ausgabe beider Dateien in eine von Ihnen neu erstellte Datei mit dem Namen saturday.txt um (Ein Beispiel hierfür finden Sie unter Abbildung 13-7). Geben Sie nun Folgendes ein:

cat sneakers.txt home.txt > saturday.txt

Abbildung 13-7. Dateien verbinden und Ausgabe umleiten

Wie Sie sehen, hat cat die Datei home.txt an das Ende von sneakers.txt angehängt.

13.9.2. Anhängen der Standardausgabe

Sie können die Umleitung der Ausgabe verwenden, um neue Informationen ans Ende einer bereits bestehenden Datei hinzufügen. Ähnlich wie im Falle des Symbols > weisen Sie auf diese Weise Ihre Shell an, die Informationen nicht an die Standardausgabe zu senden.

Wenn Sie >> verwenden, sollten Sie allerdings beachten, dass Sie Informationen zu einer Datei hinzufügen und nicht den Dateiinhalt vollständig ersetzen.

Zur Erläuterung im Folgenden ein konkretes Beispiel: Nehmen Sie die beiden bereits bestehenden Dateien (sneakers.txt und home.txt) und verbinden Sie sie mit Hilfe des Symbols zum Anhängen. Fügen Sie nun die Informationen von home.txt an die bereits bestehenden Informationen von sneakers.txt. Geben Sie hierzu Folgendes ein:

cat home.txt >> sneakers.txt

Überprüfen Sie diese Datei nun mit dem Befehl cat sneakers.txt. Die abschließende Ausgabe zeigt den Inhalt von home.txt am Ende dieser Datei:

buy some sneakers
then go to the coffee shop
then buy some coffee
bring the coffee home
take off shoes
put on sneakers
make some coffee
relax!

Der von Ihnen eingegebene Befehl hat das System angewiesen, die Ausgabe der Datei home.txt an die Datei sneakers.txt anzuhängen.

Durch das Anhängen der Ausgabe sparen Sie Zeit (sowie einigen Speicherplatz auf der Festplatte), indem bestehende Dateien verwendet werden, statt neue zu erstellen.

Vergleichen Sie nun die Ergebnisse der Dateien sneakers.txt und saturday.txt. Sie werden sehen, dass diese identisch sind. Für diesen Vergleich geben Sie Folgendes ein:

cat sneakers.txt; cat saturday.txt

Der Inhalt beider Dateien wird angezeigt — zunächst sneakers.txt und dann saturday.txt (wie in Abbildung 13-8).

Abbildung 13-8. Verkettung von Befehlen und Vergleich von Dateien

13.9.3. Umleiten der Standardeingabe

Sie können nicht nur die Standardausgabe umleiten, sondern auch die Standardeingabe.

Immer wenn Sie das Symbol < für das Umleiten der Standardeingabe verwenden, teilen Sie Ihrer Shell mit, dass der Inhalt einer Datei als Eingabe für einen Befehl verwendet werden soll.

Um dies zu verdeutlichen, soll nun eine bereits erstellte Datei verwendet werden. Hier müssen Sie lediglich folgenden Befehl eingeben:

cat < sneakers.txt

Weil Sie das kleiner-als-Symbol (<) für die Trennung des Befehls cat von der Datei verwendet haben, wurde die Ausgabe von sneakers.txt von cat gelesen.

Abbildung 13-9. Umleiten der Standardeingabe