Linux-Tutorial / Dateien mit cat, less, more, head und tail lesen

Verwenden Sie cat, um eine kurze Textdatei auszudrucken, less oder more, um durch eine lange zu blättern, und head oder tail, wenn Sie nur den Anfang oder das Ende benötigen. Das Lesen einer Datei im Terminal ist nicht dasselbe wie das Bearbeiten. Diese Lektion wendet alle fünf Befehle auf eine Übungsdatei an, damit Sie für jede Aufgabe das richtige Werkzeug auswählen können.

Diese Lektion liest den Dateiinhalt. Das Auswählen und Zählen von Zeilen wird separat behandelt in Textverarbeitung mit grep, cut, sort, uniq und wc.

Bereiten Sie eine sichere Übungsdatei vor

Führen Sie diese Befehle in Bash als normaler Benutzer aus. Wenn ~/linux-course-10-practice bereits existiert, wählen Sie einen anderen Namen, anstatt vorhandene Daten zu ändern. Stoppen Sie, wenn mkdir fehlschlägt; ein Fortsetzen könnte eine bereits vorhandene Datei überschreiben.

mkdir ~/linux-course-10-practice
cd ~/linux-course-10-practice
pwd

Erst nachdem pwd das neue Übungsverzeichnis bestätigt hat, erstellen Sie eine Datei mit fünf Zeilen. In printf steht \n für einen Zeilenumbruch. Der Operator > speichert die Standardausgabe in einer Datei und überschreibt eine vorhandene Datei, weshalb dies ein neues Verzeichnis sein muss.

printf 'alpha\nbeta\ngamma\ndelta\nepsilon\n' > sample.txt

Drucken Sie eine kurze Datei mit cat

cat sendet den Inhalt einer Datei an die Standardausgabe, was für eine kleine Textdatei nützlich ist. Wenn Sie es auf die Übungsdatei ausführen, werden die fünf Zeilen in der Reihenfolge ausgegeben.

cat sample.txt

Erwartete Ausgabe:

alpha
beta
gamma
delta
epsilon

cat teilt die Ausgabe nicht in Seiten auf und bearbeitet die Datei nicht. Eine sehr lange Datei könnte zu schnell vorbei scrollen, daher verwenden Sie stattdessen less. Vermeiden Sie es, eine unbekannte Binärdatei direkt an Ihr Terminal zu senden.

Durchsuchen Sie lange Dateien mit less und more

less ist ein Pager, der es Ihnen ermöglicht, durch eine Datei zu navigieren und zu suchen. Nach dem Ausführen von less sample.txt drücken Sie Space für den nächsten Bildschirm, b für den vorherigen Bildschirm, geben Sie /gamma ein und drücken Sie Enter zum Suchen, und drücken Sie n für das nächste Ergebnis. Drücken Sie q, um zu beenden.

less sample.txt

Die Übungsdatei passt möglicherweise auf einen Bildschirm, sodass das Verschieben der Seite mit einer längeren Protokoll- oder Konfigurationsdatei leichter zu erkennen ist. Im less gedrückte Tasten sind keine zusätzlichen Shell-Befehle, die an den Codeblock angehängt werden.

more zeigt ebenfalls jeweils eine Bildschirmseite Text an. Space bewegt sich im Allgemeinen vorwärts und q beendet. Die Navigationsfunktionen variieren je nach Implementierung und Umgebung; less ist normalerweise bequemer, wenn Sie sich zurückbewegen und suchen müssen.

more sample.txt

Lesen Sie nur den Anfang oder das Ende mit head und tail

Verwenden Sie head für den ersten Teil einer Datei und tail für den letzten Teil. Mit GNU-Dienstprogrammen fordert -n 2 zwei Zeilen an.

head -n 2 sample.txt
tail -n 2 sample.txt

Der erste Befehl gibt alpha und beta aus; der zweite gibt delta und epsilon aus.

alpha
beta
delta
epsilon

tail -f file gibt das Ende aus und wartet weiter auf neu angehängte Zeilen. Es ist nützlich für ein Live-Log; drücken Sie Ctrl+C, um das Folgen zu stoppen. Wenn Logs ersetzt oder rotiert werden, kann GNU tail -F geeignet sein, weil es den Dateinamen erneut versucht. Sie benötigen weiterhin die Berechtigung, die Datei zu lesen.

Wählen Sie den Befehl, der zur Aufgabe passt

Aufgabe Befehl Warum
Eine kurze Datei ausdrucken cat Sofortige vollständige Ausgabe
Eine lange Datei durchblättern und durchsuchen less Seitenweises Blättern und Suche
Grundlegendes seitenweises Lesen more Einfache Paginierung
Die ersten paar Zeilen prüfen head -n Nur der Anfang
Das Ende oder neue Ergänzungen prüfen tail -n, tail -f Letzte Zeilen oder angehängte Zeilen

Wenn der Name nicht verrät, ob eine Datei Text ist, verwenden Sie file wie in der früheren Lektion über Dateitypen beschrieben. Steuerzeichen in einer Datei können die Terminalausgabe überraschend machen. Die hier beschriebenen Lese-Befehle ändern die Originaldatei nicht, aber die >, die zur Erstellung der Übungsdatei verwendet wurde, kann eine Datei überschreiben.

Fünf Zeilen passen auf einen Bildschirm. Erstellen Sie in demselben neuen Lab-Verzeichnis eine separate 80-Zeilen-Datei, um das Paging zu beobachten. In less verwenden Sie die Leertaste für den nächsten Bildschirm, b für den vorherigen Bildschirm, / zum Suchen und q zum Beenden. Die Seitenlänge hängt von der Höhe des Terminals ab.

seq 1 80 > long-sample.txt
less long-sample.txt

Die ursprüngliche sample.txt bleibt unverändert. Nach dem Vergleich entfernen Sie nur die zusätzliche Datei mit rm -i long-sample.txt.

Offizielle Dokumentation

Siehe das GNU Coreutils-Handbuch für cat, head und tail, und die Bash-Umleitungsdokumentation für >. Für Tasten, die von Ihrem installierten Pager unterstützt werden, konsultieren Sie man less und man more.