Awk

Aus Linupedia.org
Version vom 26. September 2008, 20:00 Uhr von Robi (Diskussion | Beiträge) (Was ist awk und was kann awk)
Wechseln zu: Navigation, Suche
Höhe=24px
Achtung dieser Artikel ist noch in Arbeit und dient vorläufig nur als Vorlage. Dieser Beitrag zu Linux oder der Abschnitt ist in Bearbeitung. Weitere Informationen findest du hier. Der Ersteller arbeitet an dem Beitrag oder Abschnitt und entsorgt den Wartungsbaustein spätestens 3 Tage nach der letzten Bearbeitung. Änderungen außer Rechtschreibkorrekturen ohne Absprache mit dem Urspungsautor sind möglichst zu vermeiden, solange dieser Baustein noch innerhalb der genannten Frist aktiviert ist.
 Robi 18:38, 26. Sep. 2008 (UTC)

Hier wird in nächster Zeit eine kleine Einführung in awk enstehen. Wegen der Mächtigkeit und des Gesamtumfanges wird auf eine tiefgründige Aufarbeitung des Themas verzichtet, Im Wesentlichen ist folgende Struktur geplant.


Was ist awk und was kann awk ?

Awk ist eine tratitionelle Script-Programmiersprache und auf jedem UNIX- und Linux-System zu finden. Der Interpreter ist ein Programm namens awk ( benannt nach den geistigen Urvätern Alfred v. Aho ; Peter J. Weinberger und Brian W. Kernighan ). Das gesamte Konzept ist für eine Batchverarbeitung ausgelegt, d.h ein awk Programm wird ohne äußeren Eingriff eines Benutzers von Anfang bis zum Ende ausgeführt. Häuptsächlich wird es zum Durchsuchen, Auswerten und Manipulieren von Daten eingesetzt.

Das Grundprinzip von awk beruht auf der Verarbeitung einer Datei oder der Standardeingabe, dieser wird zeilenweise nach anwenderspezifischen Mustern durchsucht und beim Auffinden von Übereinstimmung eine dem jeweiligem Muster zugeordnete Aktion ausgeführt. Das Ergebnis wird in der Standardausgabe ausgegeben oder kann entsprechend umgeleitet werden. Sowohl Ein- wie auch Ausgabe wird dabei von awk als eine Folge von durch Zeilentrennzeichen separierte Zeilen (records) angesehen, die ihrerseits wieder durch Feldtrennzeichen in einzelne Felder aufgeteilt sind. Sowohl Zeilentrennzeichen (default ASCII-LF) als auch Feldtrennzeichen ( default Leerzeichen oder Tabulatorzeichen) können vom Anwender auch individuell angepasst werden. Besonders geeignet sind somit Dateien in Listen- oder Tabellenform oder analog die Ausgaben von Befehlen in diesem Format, und davon gibt es auf jedem Rechner jede Menge.

Die Spachelemente von awk ist dem der Programmiersprache C nicht unähnlich. Die Möglichkeit von Konstanten und Variablen (auch als Feld und Array Elemente) die integierte Typenanpassung, die Steuerelementen zB in Form von Schleifen und Verzweigungen und schon eingebauten Funktionen der Formatierung der Textmanipulation und einiger häufiger mathematischer Funktionen machen awk zu einem sehr mächtigem Tool. Mit seiner Hilfe lassen sich auf einfache Weise eine Vielzahl von Problemen lösen, für die es sonst wenig andere akzeptable Lösungsmöglichkeiten im Scriptumfeld gibt. Allerdings sollte man bedenken, awk ist eine interpretierende Sprache und desshalb insbesondere bei der Bearbeitung großer Datenbestände in Punkto Geschwindigkeit gegenüber anderen kompilierbaren Sprachen und Tools im Nachteil.

Kleine awk Lösungen lassen sich auf der Kommandozeile bequem mittels Pipe mit anderen Kommandos verbinden und so sowohl auf der Kommandozeile wie auch in Shellscripten sehr universell direkt benutzen. akw wird heute zB in der Systemverwaltung innerhalb von Scripten verwendet für die Bearbeitung von Konfigurationsdateien sowie für einmaliges oder gelegentliches komplexes Filtern, Konvertieren und Auswerten von umfangreichen Daten zB von Logdateien. Unterteilen kann man die Einsatzgebiete in 3 Gruppen.

Datenauswertung und -aufbereitung

Vor allem bei Anwendungen mit Listenausgabe, dabei sind uA. Filteroptionen und statistische Problemstellungen, wie z.B. Berechnung oder einfach nur Summierung von Feldinhalten oder Zählung von Häufigkeiten, in Verbindung mit weiteren Auswahlkriterien möglich

Datentransformation

Eingabedaten werden auf beliebige Weise neu gruppiert, neu formatiert oder selektiv verändert.

Datenvalidierung

Überprüfung der Daten auf ihre syntaktische und semantische Korrektheit. Auch komplettes Neuerstellen von Konfigurationsdateien aus vom User editierten Dateien.

Der grundlegende Befehlsaufruf

Einige einfache Beispiele mit Erläuterungen

= weiterführende Links