|
|
Nummerierung einer Datei
Das folgende Awk-Skript nummeriert die Zeilen einer Datei und schreibt
die entprechende Zahl gefolgt von einem Doppelpunkt an den Anfang jeder
Zeile: (Speichern Sie bitte den Text der Linux Definition
in eine Datei linux_definition.txt, wenn Sie die gleichen Ergebnisse
erhalten wollen.)
awk '{ i += 1; print i": "$0 }' linux_definition.txt
Als Ergebnis erhält man dann die folgende zeilenweise nummerierte
Ausgabe:
1: Definition von Linux 2: 3: nach Wikipedia 4: 5: Linux bezeichnet im engeren Sinne den freien, GPL-lizenzierten 6: Linux-Kernel, wird aber allgemein verwendet, um darauf aufbauende 7: freie Betriebssysteme zu bezeichnen. 8: 9: Im Sprachgebrauch der Free Software Foundation wird die bekannteste, 10: unixoide Betriebssystemvariante als GNU/Linux bezeichnet, das aus dem 11: Linux-Kernel und Betriebssystem-Komponenten von GNU und Anderen 12: kombiniert ist. Weniger bekannte Betriebssysteme, die den Linux-Kernel 13: einsetzen sind z.B. das Dresden Real-Time Operating System Project 14: (DROPS) sowie Linux für Microcontroller (µCLinux). Beide sind jedoch 15: nicht, wie Linux, unixoid aufgebaut. Linux ist kein waschechtes Unix, 16: auch wenn das immer wieder fälschlicherweise behauptet wird. 17: 18: Die Bezeichnung Linux wird im heutigen Sprachgebrauch meist für ganze 19: Installationen, oder Linux-Distributionen verwendet, in denen 20: umfangreiche, meist freie Software zusammengestellt ist. Sie enthält 21: den Linux-Kernel, die GNU-Software und viele darüber hinausgehende 22: Programme wie freie X11-Grafikserver, Arbeitsoberflächen (z.B. GNOME 23: oder KDE), Bürosoftware (z.B. OpenOffice.org), Bildbearbeitung 24: (z.B. Gimp) oder Webserver (z.B. Apache). 25: 26: (Text von http://de.wikipedia.org/wiki/Linux )
Dies ist kein sehr praxisnahes Beispiel, vor allem, weil Unix/Linux
natürlich wieder einen mächtigen Befehl bereithält, der
das ganze
kinderleicht macht:
cat -n linux_definition.txt
erzeugt die gleiche Ausgabe wie unser Awk-Programm. Will man nur die
nicht leeren Zeilen nummeriert haben, so ruft man cat mit der Option
-b auf. Mit Awk geht dies wie folgt:
awk '{ i += 1; if (length($0) > 0) {print i": "$0} else { print } }'
linux_definition.txt
|
|