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.




