AWK: Textfilterung per Skript |
||||
* Einführung * Installation * Paketmanager * Grundlagen * Shells * Entwicklung * KDE * Skriptsprachen * AWK * PHP * Perl * Apache * Veranstaltungen * Schulungen * Bücher * Netzwerk * OpenOffice * OpenSource * Samba | ||||
AWK![]() Home AWK-Skripte kompilieren Einführung Mit freundlicher Unterstützung von: Linux-Kurse und Seminare ![]() Veranstalter des Linux-Tag am Bodensee 2007 und 2008 Kontakt Haftung Impressum Problem Hilfe Startseite |
AWK-Skripte kompilierenInstallationDer AWK ist eigentlich eine interpretative Sprache, und das ist auch gut so. Schließlich will man mit dem AWK gerne ad-hoc schnell ein Problem lösen; häufig sogar direkt in der Kommandozeile, also ohne das Skript zu speichern. Aber manchmal wuchert so ein Skript, wird größer und größer und damit vielleicht auch langsamer und schon sind wir bei einem guten Grund angelangt, das Skript zu übersetzen. Aber kaum auf irgendeiner Webseite oder in einschlägiger Literatur zu AWK wird erwähnt, dass es ein leistungsfähiges Programm zum Kompilieren von AWK-Skripten gibt. Der Australier Andrew Sumner hat einen Compiler geschrieben, der ein AWK-Skript in die Programmiersprache C übersetzt. Dabei kann man sowohl nur den Quellcode als auch direkt eine ausführbare Datei erzeugen.Im Folgenden zeigen wir, was man tun muss, um mit AWKA auf einem Unix- bzw. Linux-Rechner zu arbeiten:
Anmerkung: In der Shell sollte die Umgebungsvariable für den Library-Pfad so gesetzt sein, dass /usr/local/lib enthalten ist, also z.B. in .bashrc folgende Zeile aufnehmen: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib Arbeitsweise von AWKADie Arbeitsweise von AWKA wollen wir uns an einem kleinen Beispiel anschauen. Das folgende Skript druckt von der 9. bis zur 16. Zeile alle Zeilen einer Datei aus:
Wenn obiges Skript in zeilen.awk gespeichert ist, kann man es mit folgendem Aufruf in C übersetzen: awka -f zeilen.awk Im xterm erhält man dann folgende Ausgabe:
Ein ausführbares Programm erhält man, indem man die -X-Option hinzufügt, also awka -X -f zeilen.awk Der ausführbare Code befindet sich dann in awka.out. Folgender Aufruf schreibt den Code in "zeilen": awka -X -f zeilen.awk -o zeilen Den C-Quellcode findet man unter "zeilen.c" |