Shells: Tutorial |
||||
* Einführung * Installation * Paketmanager * Grundlagen * Shells * Entwicklung * KDE * Skriptsprachen * AWK * PHP * Perl * Apache * Veranstaltungen * Schulungen * Bücher * Netzwerk * OpenOffice * OpenSource * Samba | ||||
Shells![]() Home Erste Schritte mit der Bourne-Shell Dateien zeilenweise zusammenfügen Head or Tail Schleifen und Zählen Shell-Variablen Pipes Sortieren von Daten Wer sucht der findet! Praktische Shell-Skripte Rechtschreibung Schleifen und elegant Zählen Texte formatieren mit fmt und fold Umlenkung der Ein- und der Ausgaben Klammer-Erweiterung Verknüpfen von Textdateien mittels Schlüsselfeldern Mit freundlicher Unterstützung von: Linux-Kurse und Seminare ![]() Veranstalter des Linux-Tag am Bodensee 2007 und 2008 Kontakt Haftung Impressum Problem Hilfe Startseite |
Head or TailWenn ein Engländer sagt "I cannot make head or tail of it.", dann meint er, dass er aus etwas nicht klug werden kann. Manchmal sagt er oder sie auch "I am unable to make head or tail of it", was ebenfalls bedeutet, dass jemand sich keinen Reim auf etwas machen kann. Wir hoffen natürlich nicht, dass es einem unserer Besucher so gehen wird mit den gleichnamigen Shell-Kommandos. Vor allem nicht mehr nach unserer Erklärung und unseren Beispielen.Die Schöpfer von Linux hatten bei den beiden Namen nur ihre direkte Bedeutung im Kopf, d..h. Kopf (head) und Schwanz (tail). Mit diesen Kommandos kann man sich wahlweise eine bestimmte Anzahl von Zeilen vom Anfang oder vom Ende einer Datei beginnend ausgeben lassen. headGibt die ersten Zeilen einer oder mehrerer Dateien aus.Beschreibung: head druckt (in die Standardausgabe), wenn keine anderen Parameter angegeben sind, die ersten 10 Zeilen jeder Datei aus, die in der Kommandozeile stehen. Falls mehr als eine Datei angeben wird, wird jede Teilausgabe mit einer Kopfzeile mit dem Dateinamen eingeleitet.
-c, --bytes=[-]N Ausgabe der ersten N Bytes von jeder Datei; bei vorangestelltem `-'-Zeichen werden alle außer den letzten N Bytes einer Datei ausgegeben -n, --lines=[-]N wie bei "-c", nur dass statt Bytes Zeilen ausgegeben werden -q, --quiet, --silent Keine Ausgabe von Kopfzeilen mit den Dateinamen -v, --verbose Es werden immer Kopfzeilen für die Dateinamen mit ausgegeben tailgibt die letzten Zeilen einer Datei aus
Beschreibung: tail druckt die letzten 10 Zeilen jeder Datei aus, die in der Kommandozeile angegeben ist. Falls mehr als eine Datei angeben wird, wird jede Teilausgabe mit einer Kopfzeile mit dem Dateinamen eingeleitet. -c, --bytes=N Ausgabe der letzten N Bytes -f, --follow[={name|descriptor}] Ausgabe der angehängten Daten, während eine Datei wächst; -f, --follow und --follow=descriptor sind gleichwertig -F gleich wie --follow=name --retry -n, --lines=N Ausgabe der letzten N Zeilen statt der letzten 10 --max-unchanged-stats=N bei --follow=name, eine Datei, die ihre Größe nach N (default 5) Iterationen nicht verändert hat, wird von neuem geöffnet, um zu sehen, ob nicht die Verknüpfung (unlinked) aufgehoben wurde oder umbenannt wurde. --pid=PID bei -f, beednen, falls die Proszess-Id ID, PID stirbt -q, --quiet, --silent Keine Kopfzeilen (header), falls mehr als eine Datei angegeben wurden, werden ausgegeben -s, --sleep-interval=S bei -f schlafe etwa S Sekunden (default 1.0) zwischen den Iterationen. -v, --verbose Kopfzeilen werden immer für jede bearbeitete Datei ausgegeben Beispiele zu Head und Tail:(der folgende Text wurde bei Einführung in die Shell-Programmierung, Head or Tail mit Genehmigung der Betreiber übernommen.)tail daten.txtObiger Befehl druckt zum Beispiel die letzten 10 Zeilen der Datei "daten.txt" aus. Will man z.B. die letzten 7 Zeilen haben, so kann man folgenden Befahl benutzen: tail -7 daten.txtManchmal möchte man auch alle Zeilen einer Datei außer einer bestimmten Anzahl am Anfang sehen, also zum Beispiel alle außer den ersten 3 Zeilen: tail +4 daten.txt Dieses Kommando druckt alle Zeilen ab (und inklusive) der 4. Zeile. Wie der Name bereits vermuten lässt, ist der Befehl "head" äquivalent zu tail, nur das sich die Operationen auf den Anfang einer Datei auswirken. head daten.txt druckt die ersten zehn Zeilen der Datei daten.txt. Allerdings funktioniert die "plus"-Variante nicht, d.h. head +2 daten.txt druckt nicht, wie man erwarten würde, alle außer der letzten Zeile, sondern führt zu der Fehlermeldung "head: ,,+2" kann nicht zum Lesen geöffnet werden: Datei oder Verzeichnis nicht gefunden" Sehr interessant ist das Zusammenspiel der beiden Befehle. So liefert einem tail +4 daten.txt | head -3die Zeilen 4 bis 6. (4. und 6. Zeile inklusive) |