13.11. Weitere Befehle für das Lesen von Textdateien

Sie haben bereits einige grundlegende Befehle für den Shell-Prompt kennengelernt, mit denen man in Texteditoren Dateien lesen kann. Nachfolgend stellen wir weitere vor.

13.11.1. Der Befehl head

Mit dem Befehl head können Sie den Anfang eine Datei ansehen. Der Befehl lautet:

head <filename>

head kann ein nützlicher Befehl sein. Da er sich jedoch auf die Ausgabe der ersten Zeilen einer Datei beschränkt, können Sie mit diesem Befehl nicht sehen, wie lang die Datei insgesamt ist. Standardmäßig können Sie nur die ersten zehn Zeilen einer Datei sehen. Sie können die Zahl der angezeigten Zeilen allerdings mit einer zusätzlichen Option erhöhen, wie anhand des nachfolgenden Befehls gezeigt wird:

head -20 <filename>

13.11.2. Der Befehl tail

Das Gegenteil von head ist tail. Mit tail, können Sie die letzten 10 Zeilen einer Datei ansehen. Dies ist hilfreich, wenn Sie sich die letzten 10 Zeilen einer Log-Datei für wichtige Systemmeldungen ansehen möchten. Sie können tail auch zum Ansehen von Log-Dateien während der Aktualisierung verwenden. Mit der Option -f druckt tail automatisch neue Meldungen einer offenen Datei in Echtzeit auf dem Bildschirm aus. Wenn Sie zum Beispiel die Datei /var/log/messages aktiv ansehen möchten, geben Sie als root angemeldet Folgendes am Shell-Prompt ein:

tail -f /var/log/messages

13.11.3. Der Befehl grep

Der Befehl grep eignet sich für die Suche nach bestimmten Zeichenketten in einer Datei. Wenn Sie z.B. jede Stelle, an der "coffee" in der Datei sneakers.txt auftaucht, suchen, geben Sie Folgendes ein:

grep coffee sneakers.txt

Mit diesem Befehl finden Sie jeden Stelle, an der das Wort "coffee" auftaucht.

TippTipp
 

Wenn nichts anderes vorgegeben ist, wird bei der Suche mit grep zwischen Groß- und Kleinschreibung unterschieden. Sie erhalten also bei der Suche nach Coffee andere Ergebnisse als mit coffee. Eine der Optionen in grep ist -i, die die Groß- und Kleinschreibung bei der Suche in einer Datei ignoriert. Weitere Informationen zu diesem Befehl finden Sie auf der grep man-Seite.

13.11.4. I/O-Umleitung und Pipes

Mit Hilfe von Pipes und dem Umleiten von Ausgaben können Sie Informationen speichern und/oder drucken, um Sie zu einem späteren Zeitpunkt zu lesen.

So können Sie z.B. mit grep nach bestimmten Inhalten einer Datei suchen und die Suchergebnisse dann entweder als Datei speichern oder an einen Drucker weiterleiten.

Um z.B. alle Stellen, in denen "coffee" in der Datei sneakers.txt vorkommt, zu drucken, geben Sie einfach Folgendes ein:

grep coffee sneakers.txt | lpr

13.11.5. Platzhalter und reguläre Ausdrücke

Was tun, wenn Sie den Namen der Datei, die Sie suchen, vergessen haben? Mit Hilfe von Platzhaltern oder regulären Ausdrücken können Sie Aktionen in einer oder mehreren Dateien ausführen, ohne den vollständigen Dateinamen zu wissen. Geben Sie nur den Teil des Namens ein, an den Sie sich erinnern und ersetzen Sie den fehlenden Rest durch einen Platzhalter. Platzhalter (Wildcards) sind Sonderzeichen, die Sie an Stelle von Buchstaben, Zahlen und Symbolen eingeben können, und erleichtern die Suche nach bestimmten Verzeichnissen und Dateien, ohne dass Sie lange Verzeichnislisten durchsuchen müssen.

TippTipp
 

Weitere Informationen zu Platzhaltern und regulären Ausdrücken finden Sie auf der bash man-Seite (man bash). Denken Sie daran, dass Sie die Datei mit dem Befehl man bash | col -b > bash.txt als Textdatei speichern können. Anschließend können Sie die Datei mit den Befehlen less oder vi (vi bash.txt) öffnen und lesen. Wenn Sie die Datei drucken möchten beachten Sie bitte, dass diese relativ groß ist.

Sie wissen, dass die Datei "sneak____.txt," heißt. Geben Sie also Folgendes ein:

ls sneak*.txt

und schon haben Sie den vollständigen Namen der Datei:

sneakers.txt

Sie werden bei Ihrer Suche vermutlich meistens den Stern (*) verwenden. Mit Hilfe des Sterns finden Sie alle Objekte, die Ihren Suchkriterien entsprechen. Das heißt, auch wenn Sie nur:

ls *.txt

oder:

ls sn*

eingeben, finden Sie sneakers.txt sowie alle weiteren Dateien, deren Namen mit .txt aufhören oder mit sn anfangen. Sie sollten Ihre Suchkriterien daher so genau wie möglich eingeben.

Eine Möglichkeit zur Eingrenzung der Suchkriterien ist die Verwendung des Fragezeichens (?). Wie der Stern kann auch ? nach Dateien suchen, die bestimmten Suchkriterien entsprechen.

In diesem Fall ist ? allerdings sinnvoll bei der Suche nach der Übereinstimmung einzelner Zeichen. Wenn Sie also nach sneaker?.txt suchen, ist das Suchergebnis sneakers.txt und/oder sneakerz.txt, sofern es eine Datei mit diesem Namen gibt.

Die Suche mit regulären Ausdrücken ist komplizierter als die Suche mit Stern und Fragezeichen.

Ist ein Stern nämlich zufällig Teil eines Dateinamens, und unsere Beispiel-Datei heißt nicht sneakers.txt sondern sneak*.txt, kann die Suche mit regulären Ausdrücken sehr hilfreich sein.

Mit dem umgekehrten Schrägstrich (\) können Sie angeben, dass Sie mit dem Stern nicht alles durchsuchen möchten, sondern nur Dateien, die einen Stern im Dateinamen haben.

Heißt die zu suchende Datei sneak*.txt, geben Sie Folgendes ein:

sneak\*.txt

Nachfolgend eine kleine Übersicht über Platzhalter und reguläre Ausdrücke: