Gawk: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 3: | Zeile 3: | ||
== Beschreibung == | == Beschreibung == | ||
''awk'' kann als Weiterentwicklung und Ergänzung des Streameditors sed betrachten werden | ; ''awk'' kann als Weiterentwicklung und Ergänzung des Streameditors sed betrachten werden | ||
* sie teilen gewisse syntaktische Elemente wie etwa reguläre Ausdrücke | * sie teilen gewisse syntaktische Elemente wie etwa reguläre Ausdrücke | ||
* Im Unterschied zu sed stehen in awk aber C-ähnliche Strukturen zur Verfügung, die einen wesentlich leichteren Programmaufbau erlauben. | * Im Unterschied zu sed stehen in awk aber C-ähnliche Strukturen zur Verfügung, die einen wesentlich leichteren Programmaufbau erlauben. | ||
Zeile 10: | Zeile 10: | ||
** C-Formate | ** C-Formate | ||
Minimalanwendung | ; Minimalanwendung | ||
* in Shell-Skripten, um als Filter zum Beispiel Dateinamen zusammenzusetzen | * in Shell-Skripten, um als Filter zum Beispiel Dateinamen zusammenzusetzen | ||
Ausführliche Programmen | ;Ausführliche Programmen | ||
* können Textdateien bearbeiten, umformen und auszuwerten | * können Textdateien bearbeiten, umformen und auszuwerten | ||
* Dazu stehen neben den üblichen Stringfunktionen aber auch mathematische Grund-Funktionen zur Verfügung. | * Dazu stehen neben den üblichen Stringfunktionen aber auch mathematische Grund-Funktionen zur Verfügung. | ||
Der Name "awk" | ; Der Name "awk" | ||
* ist aus den Anfangsbuchstaben der Nachnamen ihrer drei Autoren Alfred V. Aho, Peter J. Weinberger und Brian W. Kernighan zusammengesetzt. | * ist aus den Anfangsbuchstaben der Nachnamen ihrer drei Autoren Alfred V. Aho, Peter J. Weinberger und Brian W. Kernighan zusammengesetzt. | ||
* Der freie Awk-Abkömmling der GNU-Gemeinde gawk zeigt sich zu POSIX konform und wird in den folgenden Abschnitten behandelt. | * Der freie Awk-Abkömmling der GNU-Gemeinde gawk zeigt sich zu POSIX konform und wird in den folgenden Abschnitten behandelt. | ||
Zeile 26: | Zeile 26: | ||
* 1987 wartete Awk mit einer komplett überarbeiteten Fassung auf. | * 1987 wartete Awk mit einer komplett überarbeiteten Fassung auf. | ||
* Wesentliche Bestandteile fanden im später definierten POSIX-Standard Einzug. | * Wesentliche Bestandteile fanden im später definierten POSIX-Standard Einzug. | ||
* Der wesentliche Unterschied von Awk zu anderen Programmiersprachen wie den Skriptsprachen der UNIX Shells, C oder Tcl/Tk besteht in der ''datenorientierten Arbeitsweise'', während die typischen Vertreter prozeduraler Programmiersprachen ''funktionsorientiert'' wirken. | * Der wesentliche Unterschied von Awk zu anderen Programmiersprachen wie den Skriptsprachen der UNIX Shells, C oder Tcl/Tk besteht in der ''datenorientierten Arbeitsweise'', während die typischen Vertreter prozeduraler Programmiersprachen ''funktionsorientiert'' wirken. | ||
* Ein awk-Programm wirkt implizit wie eine endlose Schleife, die fortwährend durchlaufen wird, bis keine Daten mehr in der Eingabe stehen oder das Programm »bewusst« verlassen wird, d. h. der Steuerfluss ist maßgeblich durch die Daten gegeben. | * Ein awk-Programm wirkt implizit wie eine endlose Schleife, die fortwährend durchlaufen wird, bis keine Daten mehr in der Eingabe stehen oder das Programm »bewusst« verlassen wird, d. h. der Steuerfluss ist maßgeblich durch die Daten gegeben. | ||
* In den meisten anderen Programmiersprachen wird das Hauptprogramm aber einmalig initiiert und Funktionen beeinflussen den Fortschritt der Berechnung. | * In den meisten anderen Programmiersprachen wird das Hauptprogramm aber einmalig initiiert und Funktionen beeinflussen den Fortschritt der Berechnung. | ||
* Awk ähnelt somit eher dem Streameditor (sed); er vermag allerdings bedeutend mehr als die »bloße« Modifikation von Textdateien, denn Awk kennt Variablen, Vergleiche, Funktionen, Schleifen u.a.m. und ermöglicht eine Interaktion mit dem System. | * Awk ähnelt somit eher dem Streameditor (sed); er vermag allerdings bedeutend mehr als die »bloße« Modifikation von Textdateien, denn Awk kennt Variablen, Vergleiche, Funktionen, Schleifen u.a.m. und ermöglicht eine Interaktion mit dem System. | ||
* Da in Linux-Installationen nahezu ausschließlich die GNU-Implementierung des Werkzeugs vorzufinden ist, werden wir nachfolgend immer die Bezeichnung »awk« verwenden und meinen damit eigentlich »gawk«. | * Da in Linux-Installationen nahezu ausschließlich die GNU-Implementierung des Werkzeugs vorzufinden ist, werden wir nachfolgend immer die Bezeichnung »awk« verwenden und meinen damit eigentlich »gawk«. | ||
* Zeigen die Beispiele auf Ihrem System abweichende oder fehlerhafte Reaktionen, überprüfen Sie, ob »awk« in ihrem System ein Link auf »gawk« ist. | * Zeigen die Beispiele auf Ihrem System abweichende oder fehlerhafte Reaktionen, überprüfen Sie, ob »awk« in ihrem System ein Link auf »gawk« ist. | ||
Version vom 30. März 2023, 11:12 Uhr
awk ist eine Programmiersprache zur Bearbeitung und Auswertung von Textdateien
Beschreibung
- awk kann als Weiterentwicklung und Ergänzung des Streameditors sed betrachten werden
- sie teilen gewisse syntaktische Elemente wie etwa reguläre Ausdrücke
- Im Unterschied zu sed stehen in awk aber C-ähnliche Strukturen zur Verfügung, die einen wesentlich leichteren Programmaufbau erlauben.
- if .. then .. else
- Schleifen
- C-Formate
- Minimalanwendung
- in Shell-Skripten, um als Filter zum Beispiel Dateinamen zusammenzusetzen
- Ausführliche Programmen
- können Textdateien bearbeiten, umformen und auszuwerten
- Dazu stehen neben den üblichen Stringfunktionen aber auch mathematische Grund-Funktionen zur Verfügung.
- Der Name "awk"
- ist aus den Anfangsbuchstaben der Nachnamen ihrer drei Autoren Alfred V. Aho, Peter J. Weinberger und Brian W. Kernighan zusammengesetzt.
- Der freie Awk-Abkömmling der GNU-Gemeinde gawk zeigt sich zu POSIX konform und wird in den folgenden Abschnitten behandelt.
AWK ergibt sich auf den Initialen seiner Erfinder * Alfred V. Aho, Peter J. Weinberger, Brian Kernighan
- und erweiterte erstmals 1978 den Werkzeugfundus von Unix Version 7. Jener Kernighan prägte übrigens gemeinsam mit Dennies Ritchie maßgeblich die Entstehung der Programmiersprache C
- wen wundern da noch die Analogien beider Sprachen?
- 1987 wartete Awk mit einer komplett überarbeiteten Fassung auf.
- Wesentliche Bestandteile fanden im später definierten POSIX-Standard Einzug.
- Der wesentliche Unterschied von Awk zu anderen Programmiersprachen wie den Skriptsprachen der UNIX Shells, C oder Tcl/Tk besteht in der datenorientierten Arbeitsweise, während die typischen Vertreter prozeduraler Programmiersprachen funktionsorientiert wirken.
- Ein awk-Programm wirkt implizit wie eine endlose Schleife, die fortwährend durchlaufen wird, bis keine Daten mehr in der Eingabe stehen oder das Programm »bewusst« verlassen wird, d. h. der Steuerfluss ist maßgeblich durch die Daten gegeben.
- In den meisten anderen Programmiersprachen wird das Hauptprogramm aber einmalig initiiert und Funktionen beeinflussen den Fortschritt der Berechnung.
- Awk ähnelt somit eher dem Streameditor (sed); er vermag allerdings bedeutend mehr als die »bloße« Modifikation von Textdateien, denn Awk kennt Variablen, Vergleiche, Funktionen, Schleifen u.a.m. und ermöglicht eine Interaktion mit dem System.
- Da in Linux-Installationen nahezu ausschließlich die GNU-Implementierung des Werkzeugs vorzufinden ist, werden wir nachfolgend immer die Bezeichnung »awk« verwenden und meinen damit eigentlich »gawk«.
- Zeigen die Beispiele auf Ihrem System abweichende oder fehlerhafte Reaktionen, überprüfen Sie, ob »awk« in ihrem System ein Link auf »gawk« ist.
Installation
Syntax
Optionen
Parameter
Umgebungsvariablen
Exit-Status
Anwendungen
Fehlerbehebung
Konfiguration
Dateien
Sicherheit
Siehe auch
Dokumentation
RFC
Man-Pages
Info-Pages
Links
Einzelnachweise
Projekt
Weblinks
Testfragen
Testfrage 1
Antwort1
Testfrage 2
Antwort2
Testfrage 3
Antwort3
Testfrage 4
Antwort4
Testfrage 5
Antwort5