Kodokon kodokon.com

Eine Datei lesen und eine Ausgabe umleiten

Zeige den Inhalt einer Datei mit cat, head und tail an und fange dann eine Ausgabe in einer Datei ein.

7 Min. · 3 Fragen

Diese Lektion in Kodokon öffnen

Du musst nicht jedes Mal einen Editor öffnen, nur um einen Blick in eine Datei zu werfen. Der Befehl cat gibt ihren Inhalt direkt im Terminal aus. Sein Name kommt von concatenate, "aneinanderhängen", denn er kann auch mehrere Dateien nacheinander anzeigen. Für kleine Dateien ist er das ideale Werkzeug: höchstens ein paar Dutzend Zeilen.

BASH
yoann@laptop:~/my-project$ cat shopping.txt
Bread
Cheese
Tomatoes

yoann@laptop:~/my-project$ cat shopping.txt notes.txt
Bread
Cheese
Tomatoes
Do not forget the Saturday market
cat auf einer Datei, dann auf zwei Dateien, die nacheinander angezeigt werden.

Bei einer Datei mit zehntausend Zeilen lässt cat den Bildschirm zehn Sekunden lang durchrasen und du bekommst nur das Ende zu sehen. Es gibt zwei genauere Befehle: head zeigt den Anfang einer Datei, tail zeigt das Ende. Beide zeigen standardmäßig 10 Zeilen, und mit der Option -n wählst du, wie viele es sein sollen. tail hat mit der Option -f (follow) eine Superkraft: Er bleibt offen und gibt neue Zeilen aus, sobald sie eintreffen. So verfolgt man das Log eines Servers live.

BASH
head server.log
head -n 5 server.log
tail -n 20 server.log
tail -f server.log
Der Anfang, die ersten 5 Zeilen, die letzten 20, dann das Ende live (Ctrl + C zum Beenden).

Standardmäßig schreibt ein Befehl sein Ergebnis auf den Bildschirm. Du kannst dieses Ergebnis aber in eine Datei umleiten, so wie du Wasser aus einem Schlauch in einen Eimer umleiten würdest. Das ist die Umleitung, und sie wird mit einer spitzen Klammer geschrieben. Eine einfache spitze Klammer > schickt die Ausgabe in eine Datei und überschreibt dabei alles, was darin stand. Eine doppelte spitze Klammer >> hängt ans Ende an, ohne etwas zu löschen. Dieser Unterschied von einem einzigen Zeichen ändert alles. Um zu prüfen, was du gerade erzeugt hast, ohne alles auszugeben, zählt der Befehl wc (word count) mit der Option -l (lines) die Zeilen einer Datei.

BASH
yoann@laptop:~/my-project$ echo "My first line" > notes.txt
yoann@laptop:~/my-project$ echo "My second line" >> notes.txt
yoann@laptop:~/my-project$ cat notes.txt
My first line
My second line
yoann@laptop:~/my-project$ ls -l > inventory.txt
yoann@laptop:~/my-project$ wc -l inventory.txt
7 inventory.txt
Eine Datei anlegen, eine Zeile anhängen, prüfen, eine Ausgabe einfangen und dann ihre Zeilen zählen.

Wissenscheck

Stelle sicher, dass du die wichtigsten Punkte dieser Lektion behalten hast.

  1. Wofür ist der Befehl cat da?
    • Den Inhalt einer Datei im Terminal anzeigen
    • Eine leere Datei erstellen
    • Eine Datei löschen
    • Die Zeilen einer Datei zählen
  2. Was ist der Unterschied zwischen > und >>?
    • > hängt ans Ende an, >> überschreibt die Datei
    • > überschreibt die Datei, >> hängt ans Ende an
    • Keiner, beide schreiben in eine Datei
  3. Wie zeigst du die letzten 20 Zeilen der Datei server.log an?
    • head -n 20 server.log
    • cat -n 20 server.log
    • tail -n 20 server.log