AWK

Das AWK Dienstprogramm ist eine Datenförderung und das Melden des Werkzeugs, das eine datengesteuerte scripting Sprache verwendet, die aus einer Reihe von Handlungen besteht, die gegen Textdaten (entweder in Dateien oder in Datenströmen) zum Zweck zu nehmen ist, formatierte Berichte zu erzeugen. Die Sprache, die durch awk umfassend verwendet ist, verwendet die Schnur datatype, assoziative Reihe (d. h. ordnet mit einem Inhaltsverzeichnis versehen durch Schlüsselschnuren), und regelmäßige Ausdrücke.

AWK ist eines der frühen Werkzeuge, um in der Version 7 Unix und gewonnene Beliebtheit als eine Weise zu erscheinen, rechenbetonte Eigenschaften zu einer Rohrleitung von Unix hinzuzufügen. Eine Version der AWK Sprache ist eine Standardeigenschaft fast jedes modernen Unix ähnlichen Betriebssystems verfügbar heute. AWK wird in der Einzelnen UNIX Spezifizierung als eines der obligatorischen Dienstprogramme von Unix Betriebssystem erwähnt. Außer der Bach-Schale ist AWK die einzige weitere scripting in einer Standardumgebung von Unix verfügbare Sprache. Es ist auch unter den durch die Linux Standardgrundspezifizierung erforderlichen Befehlen da. Durchführungen von AWK bestehen als installierte Software für fast alle anderen Betriebssysteme.

AWK wurde an Glockenlaboratorien in den 1970er Jahren geschaffen, und sein Name wird aus den Familiennamen seiner Autoren - Alfred Aho, Peter Weinberger und Brian Kernighan abgeleitet. Der Name wird als eine Reihe von getrennten Briefen nicht allgemein ausgesprochen, aber eher dasselbe als der Name des Vogels, Alken erklingen zu lassen (der als ein Emblem der Sprache solcher als auf Dem AWK Programmiersprache-Buchumschlag handelt - wird auf das Buch häufig durch die Abkürzung TAPL verwiesen)., wenn geschrieben, in allen Kleinbuchstaben, bezieht sich auf das Programm des Unix oder Plans 9, das andere auf der AWK Programmiersprache geschriebene Programme führt.

Die Macht, Kürze und Grenzen von frühen AWK Programmen haben Larry Wall angeregt, Perl zu schreiben, gerade als ein neuer, mächtigerer POSIX AWK und Lackel (GNU AWK) definiert wurden. Obwohl AWK und sed entworfen wurden, um Ein-Überseedampfer-Programme zu unterstützen, haben sogar die frühen Glockenlaboratorium-Benutzer von AWK häufig gut strukturierte große AWK Programme geschrieben. Trotz seines beschränkten beabsichtigten Gebiets des Gebrauches ist AWK Turing-abgeschlossen.

Struktur von AWK Programmen

"AWK ist eine Sprache, um Textdateien zu bearbeiten. Eine Datei wird als eine Folge von Aufzeichnungen behandelt, und standardmäßig ist jede Linie eine Aufzeichnung. Jede Linie wird in eine Folge von Feldern zerbrochen, so können wir an das erste Wort in einer Linie als das erste Feld, das zweite Wort als das zweite Feld und so weiter denken. Ein AWK Programm ist einer Folge von Behauptungen der Muster-Handlung. AWK liest den Eingang eine Linie auf einmal. Eine Linie wird für jedes Muster im Programm, und für jedes Muster gescannt, das zusammenpasst, wird die verbundene Handlung durchgeführt." - Alfred V. Aho

Ein AWK Programm ist eine Reihe von Muster-Handlungspaaren, schriftlich als:

Bedingung {Handlung }\

wo Bedingung normalerweise ein Ausdruck ist und Handlung eine Reihe von Befehlen ist.

Der Eingang wird in Aufzeichnungen gespalten, wo durch den Verzug Aufzeichnungen durch Zeilenvorschubzeichen getrennt werden, so dass der Eingang in Linien gespalten wird. Das Programm prüft jede Aufzeichnung gegen jede der Bedingungen der Reihe nach, und führt die Handlung für jeden Ausdruck durch, der wahr ist.

Entweder die Bedingung oder die Handlung können weggelassen werden.

Der Bedingungsverzug zum Zusammenbringen jeder Aufzeichnung.

Die Verzug-Handlung soll die Aufzeichnung drucken.

Zusätzlich zu einem einfachen AWK Ausdruck, solcher als oder, kann die Bedingung sein BEGINNEN oder BEENDEN das Veranlassen die Handlung, vorher durchgeführt zu werden, oder nachdem alle Aufzeichnungen, oder pattern1, pattern2 gelesen worden sind, der die Reihe von Aufzeichnungen vergleicht, die mit einer Aufzeichnung anfangen, die pattern1 bis zu und einschließlich der Aufzeichnung vergleicht, die pattern2 vor dem neuen Versuchen vergleicht, gegen pattern1 auf zukünftigen Linien zusammenzupassen.

Zusätzlich zu normalen arithmetischen und logischen Maschinenbedienern schließen AWK Ausdrücke den Tilde-Maschinenbediener, ~ ein, der einen regelmäßigen Ausdruck gegen eine Schnur vergleicht.

Als handlicher syntaktischer Zucker,/regexp/, ohne die Tilde-Maschinenbediener-Matchs gegen die aktuelle Aufzeichnung zu verwenden.

AWK befiehlt

AWK Befehle sind die Behauptungen, gegen die die Handlung in den Beispielen oben ausgewechselt wird. AWK Befehle können Funktionsanrufe, variable Anweisungen, Berechnungen oder jede Kombination davon einschließen. AWK enthält eingebaute Unterstützung für viele Funktionen; noch viele werden durch die verschiedenen Geschmäcke nach AWK zur Verfügung gestellt. Außerdem unterstützen einige Geschmäcke die Einschließung dynamisch verbundener Bibliotheken, die auch mehr Funktionen zur Verfügung stellen können.

Für die Kürze werden die einschließenden lockigen geschweiften Klammern ({}) aus diesen Beispielen weggelassen.

Der Druckbefehl

Der Druckbefehl ist an den Produktionstext gewöhnt. Der Produktionstext wird immer mit einer vorherbestimmten Schnur genannt den Produktionsrekordseparator (ORS) begrenzt, dessen Verzug-Wert ein newline ist. Die einfachste Form dieses Befehls ist:

:This zeigt den Inhalt der aktuellen Aufzeichnung. In AWK werden Aufzeichnungen unten in Felder zerbrochen, und diese können getrennt gezeigt werden:

: Zeigt das erste Feld der aktuellen Aufzeichnung

: Zeigt die ersten und dritten Felder der aktuellen Aufzeichnung, getrennt durch eine vorherbestimmte Schnur hat den Produktionsfeldseparator (OFS) genannt, dessen Verzug-Wert ein Charakter des einfachen Zeilenabstands ist

Obwohl diese Felder ($X) Ähnlichkeit mit Variablen haben können (das $-Symbol zeigt Variablen in Perl an), sie beziehen sich wirklich auf die Felder der aktuellen Aufzeichnung. Ein spezieller Fall, 0 $, bezieht sich auf die komplette Aufzeichnung. Tatsächlich sind die Befehle "" und "" in der Funktionalität identisch.

Der Druckbefehl kann auch die Ergebnisse von Berechnungen zeigen und/oder Anrufe fungieren:

drucken Sie 3+2

drucken Sie foobar (3)

drucken Sie foobar (Variable)

drucken Sie Sünde (3-2)

Produktion kann an eine Datei gesandt werden:

drucken Sie "Ausdruck"> "Dateiname"

oder durch eine Pfeife:

drucken Sie "Ausdruck" | "befehlen"

Eingebaute Variablen

Die eingebauten Variablen von Awk schließen die Feldvariablen ein: 1 $, 2 $, 3 $, und so weiter (0 $ vertritt die komplette Aufzeichnung). Sie halten den Text oder die Werte in den individuellen Textfeldern in einer Aufzeichnung.

Andere Variablen schließen ein:

  • NR: Behält eine aktuelle Zählung der Zahl von Eingangsaufzeichnungen.
  • NF: Behält eine Zählung der Zahl von Feldern in einer Eingangsaufzeichnung. Das letzte Feld in der Eingangsaufzeichnung kann durch den $NF benannt werden.
  • DATEINAME: Enthält den Namen der aktuellen Eingangsdatei.
  • FS: Enthält den "Feldseparator" Charakter, der verwendet ist, um Felder auf der Eingangsaufzeichnung zu teilen. Der Verzug, "Leerraum", schließt jeden Raum und Etikett-Charaktere ein. FS kann einem anderen Charakter damit wiedereauftragt werden, den Feldseparator zu ändern.
  • RS: Versorgt den aktuellen "Rekordseparator" Charakter. Seitdem, standardmäßig, ist eine Eingangslinie die Eingangsaufzeichnung, der Verzug-Rekordseparator-Charakter ist ein "newline".
  • OFS: Versorgt den "Produktionsfeldseparator", der die Felder trennt, wenn Awk sie druckt. Der Verzug ist ein "Raum"-Charakter.
  • ORS: Versorgt den "Produktionsrekordseparator", der die Produktionsaufzeichnungen trennt, wenn Awk sie druckt. Der Verzug ist ein "newline" Charakter.
  • OFMT: Versorgt das Format für die numerische Produktion. Das Verzug-Format ist "%.6g".

Variablen und Syntax

Variablennamen können einigen der Charaktere [Ein Za z0 9 _] mit Ausnahme von Sprachschlüsselwörtern verwenden. Die Maschinenbediener + - * / vertreten Hinzufügung, Subtraktion, Multiplikation und Abteilung beziehungsweise. Für die Schnur-Verkettung, legen Sie einfach zwei Variablen (oder spannen Sie Konstanten) neben einander. Es ist fakultativ, um einen Raum zwischen zu verwenden, wenn Schnur-Konstanten beteiligt werden, aber zwei Variablennamen können neben einander nicht gelegt werden, ohne einen Raum zwischen zu haben. Schnur-Konstanten werden durch Anführungszeichen abgegrenzt. Behauptungen brauchen mit Strichpunkten nicht zu enden. Schließlich können Anmerkungen zu Programmen durch das Verwenden # als der erste Charakter auf einer Linie hinzugefügt werden.

Benutzerbestimmte Funktionen

In einem C ähnlichen Format bestehen Funktionsdefinitionen aus dem Schlüsselwort, dem Funktionsnamen, den Argument-Namen und dem Funktionskörper. Hier ist ein Beispiel einer Funktion.

fungieren Sie add_three (Nummer) {\

geben Sie Zahl + 3 zurück

}\

Diese Behauptung kann wie folgt angerufen werden:

drucken Sie add_three (36) # Produktionen 39

Funktionen können Variablen haben, die im lokalen Spielraum sind. Die Namen von diesen werden zum Ende der Argument-Liste hinzugefügt, obwohl Werte für diese weggelassen werden sollten, wenn man die Funktion nennt. Es ist Tagung, einen whitespace in der Argument-Liste vor den lokalen Variablen hinzuzufügen, anzuzeigen, wo das Rahmen-Ende und die lokalen Variablen beginnen.

Beispielanwendungen

Hallo Welt

Hier ist das übliche "Hallo" in AWK geschriebenes Weltprogramm:

BEGINNEN SIE {Druck "Hallo, Welt!" }\

Bemerken Sie, dass eine ausführliche Behauptung hier nicht erforderlich ist; da das einzige Muster ist, werden keine Argumente der Befehl-Linie bearbeitet.

Drucklinien, die länger sind als 80 Charaktere

Drucken Sie alle Linien, die länger sind als 80 Charaktere. Bemerken Sie, dass die Verzug-Handlung die aktuelle Linie drucken soll.

Länge (0 $)> 80

Drucken Sie eine Zählung von Wörtern

Graf-Wörter im Eingang und Druck die Zahl von Linien, Wörtern und Charakteren (wie WC)

{\

w + = NF

c + = Länge + 1

}\

ENDE {druckt NR, w, c }\

Da es kein Muster für die erste Linie des Programms, jede Linie von Eingangsmatchs standardmäßig gibt, so werden die Zunahme-Handlungen für jede Linie durchgeführt. Bemerken Sie, dass das Schnellschrift dafür ist.

Summe letztes Wort

{s + = $NF }\

ENDE {druckt s + 0 }\

s wird durch den numerischen Wert von $NF erhöht, der das letzte Wort auf der Linie, wie definiert, durch den Feldseparator von AWK durch den Verzug-Leerraum ist. NF ist die Zahl von Feldern in der aktuellen Linie, z.B 4. Da 4 $ der Wert des vierten Feldes sind, ist $NF der Wert des letzten Feldes in der Linie unabhängig davon, wie viele Felder diese Linie hat, oder ob es mehr oder weniger Felder hat als Umgebungslinien. $ ist wirklich ein unärer Maschinenbediener mit der höchsten Maschinenbediener-Priorität. (Wenn die Linie keine Felder dann hat, ist NF 0, 0 $ ist die ganze Linie, die in diesem Fall abgesondert vom möglichen Leerraum, und so der numerische Wert 0 leer

ist

Am Ende des Eingangs die END-Muster-Matchs so wird s gedruckt. Jedoch, seitdem es keine Linien des Eingangs überhaupt gegeben haben kann, in welchem Fall kein Wert jemals s zugeteilt worden ist, wird es standardmäßig eine leere Schnur sein. Das Hinzufügen der Null zu einer Variable ist ein AWK Idiom, um es von einer Schnur bis einen numerischen Wert zu zwingen. (Das Verketten einer leeren Schnur soll von einer Zahl bis eine Schnur, z.B s "" zwingen. Bemerken Sie, es gibt keinen Maschinenbediener, um Schnuren zu verketten, sie werden gerade angrenzend gelegt.) Mit dem Zwang druckt das Programm 0 auf einem leeren Eingang, ohne es eine leere Linie wird gedruckt.

Vergleichen Sie eine Reihe von Eingangslinien

$ ja Wikipedia | awk 'NR % 4 == 1, NR % 4 == 3 {printf "%6d %s\n", NR, 0 $}' | sed 7q

1 Wikipedia

2 Wikipedia

3 Wikipedia

5 Wikipedia

6 Wikipedia

7 Wikipedia

9 Wikipedia

$\

Ja Befehl druckt wiederholt sein Argument (standardmäßig der Brief "y") auf einer Linie. In diesem Fall erzählen wir dem Befehl, das Wort "Wikipedia" zu drucken. Die Handlungsbehauptung druckt jede numerierte Linie. Die Printf-Funktion eifert mit dem Standard C printf wett, und arbeitet ähnlich zum Druckbefehl, der oben beschrieben ist. Das Muster, um jedoch zusammenzupassen, arbeitet wie folgt: NR ist die Zahl von Aufzeichnungen, normalerweise Linien des Eingangs, AWK hat bis jetzt, d. h. die aktuelle Linienzahl gelesen, an 1 für die erste Linie des Eingangs anfangend. % ist der modulo Maschinenbediener. NR % 4 == 1 ist für das erste, das fünfte, das neunte, usw., die Linien des Eingangs wahr. Ebenfalls ist NR % 4 == 3 für das dritte, das siebente, das elfte, usw., die Linien des Eingangs wahr. Das Reihe-Muster ist bis zu den ersten Teil-Matchs, online 1 falsch, und bleibt dann wahr bis zu und einschließlich, wenn der zweite Teil, online 3 zusammenpasst. Es bleibt dann falsch, bis der erste Teil wieder online 5 zusammenpasst. Der Sed-Befehl wird verwendet, um die ersten 7 Linien zu drucken, zu verhindern, für immer zu laufen. Es ist dazu gleichwertig, wenn der Hauptbefehl verfügbar ist.

Der erste Teil eines Reihe-Musters, das, z.B 1 ständig wahr ist, kann verwendet werden, um die Reihe am Anfang des Eingangs anzufangen. Ähnlich, wenn der zweite Teil ständig, z.B 0 falsch ist, geht die Reihe bis zum Ende des Eingangs weiter:

/^ - Kürzung hier - $/, 0

Drucklinien des Eingangs von der ersten Linie, die den regelmäßigen Ausdruck ^ - Kürzung hier - $, d. h. eine Linie vergleicht, die nur den Ausdruck "-Kürzung hier -", zum Ende enthält.

Berechnen Sie Wortfrequenzen

Wortfrequenz verwendet assoziative Reihe:

BEGINNEN SIE {\

FS = "[^a-zA-Z] +"

}\ {\

für (i=1; ich war eine Hinzufügung zu Einem Wahrem (sieh unten) gemachtem awk, nachdem das Buch veröffentlicht wurde.

Match-Muster von der Befehl-Linie

Dieses Programm kann auf mehrere Weisen vertreten werden. Der erste verwendet die Bach-Schale, um eine Schale-Schrift zu machen, die alles tut. Es ist von diesen Methoden am kürzesten:

$-Katze grepinawk

pattern= 1 $

Verschiebung

awk '/' $pattern '/{drucken DATEINAMEN ":" 0 $} '"$"

$\

Im Awk-Befehl wird durch Notierungen nicht geschützt. Ein Muster allein auf die übliche Weise Kontrollen, um wenn die ganze Linie Matchs zu sehen. enthält den aktuellen Dateinamen. awk hat keinen ausführlichen Verkettungsmaschinenbediener; zwei angrenzende Schnuren verketten sie. breitet sich zur ursprünglichen unveränderten Eingangslinie aus.

Es gibt abwechselnde Weisen, das zu schreiben. Diese Schale-Schrift greift auf die Umgebung direkt aus awk zu:

$-Katze grepinawk pattern= 1 $ Verschiebung

awk '0 $ ~ GRENZEN ["Muster"] {AB drucken DATEINAMEN ":" 0 $}' "$"

$\

Das ist eine Schale-Schrift, die, eine in einer neueren Version Eines Wahren awk eingeführte Reihe verwendet, nachdem das Buch veröffentlicht wurde. Die Subschrift dessen ist der Name einer Umgebungsvariable; sein Ergebnis ist der Wert der Variable. Das ist der Getenv-Funktion in verschiedenen Standardbibliotheken und POSIX ähnlich. Die Schale-Schrift macht eine Umgebungsvariable, die das erste Argument enthält, lässt dann dieses Argument fallen und hat awk suchen nach dem Muster in jeder Datei.

Kontrollen, um zu sehen, ob sein linker operand sein Recht operand vergleicht; ist sein Gegenteil. Bemerken Sie, dass ein regelmäßiger Ausdruck gerade eine Schnur ist und in Variablen versorgt werden kann.

Der folgende Weg verwendet Variable-Anweisung der Befehl-Linie, in der ein Argument für awk als eine Anweisung zu einer Variable gesehen werden kann:

$-Katze grepinawk pattern= 1 $ Verschiebung

awk '0 $ ~ Muster {drucken DATEINAMEN ":" 0 $}' "pattern= $pattern" "$"

$\

Schließlich wird das in reinem awk ohne Hilfe von einer Schale oder ohne das Bedürfnis geschrieben, zu viel über die Durchführung der awk Schrift zu wissen (weil sich die variable Anweisung auf dem Befehl aufstellt, tut man), aber ist ein bisschen lang:

BEGINNEN SIE {\

Muster = ARGV [1]

für (ich = 1; ich bin nicht nur notwendig, um das erste Argument herauszuziehen, sondern auch es davon abzuhalten, als ein Dateiname interpretiert zu werden, nachdem der Block endet., die Zahl von Argumenten, wird immer versichert, 1 zu sein, wie der Name des Befehls ist, der die Schrift, meistenteils die Schnur durchgeführt hat. Bemerken Sie auch, dass das die leere Schnur ist. beginnt eine Anmerkung, die sich zum Ende der Linie ausbreitet.

Bemerken Sie den Block. awk überprüft nur, um zu sehen, ob er vom Standardeingang lesen sollte, bevor er den Befehl führt. Das bedeutet das

awk 'prog'

nur Arbeiten, weil die Tatsache, dass es keine Dateinamen gibt, nur vorher überprüft wird, werden geführt! Wenn Sie ausführlich zu 1 untergehen, so dass es keine Argumente gibt, wird awk einfach aufhören, weil es findet, dass es keine Eingangsdateien mehr gibt. Deshalb müssen Sie ausführlich sagen, vom Standardeingang mit dem speziellen Dateinamen zu lesen.

Geschlossene AWK Schriften

Als mit vielen anderen Programmiersprachen kann geschlossene AWK Schrift mit der so genannten "Bude"-Syntax gebaut werden.

Zum Beispiel hat ein UNIX-Befehl gerufen, der die Schnur "Hallo, Welt druckt!" kann durch das Schaffen einer Datei genannt gebaut werden, die folgenden Linien enthaltend:

#!/usr/bin/awk-f

BEGINNEN SIE {Druck "Hallo, Welt!" }\

Das Erzählen awk, von dem das Argument, das folgt, die Datei ist, um das awk Programm zu lesen, der dorthin durch die Schale gelegt wird, wenn man läuft.

Versionen und Durchführungen

AWK wurde 1977 ursprünglich geschrieben, und mit der Version 7 Unix verteilt.

1985 haben seine Autoren angefangen, die Sprache am bedeutsamsten auszubreiten, indem sie benutzerbestimmte Funktionen hinzugefügt haben. Die Sprache wird im Buch Die AWK Programmiersprache, veröffentlichter 1988 beschrieben, und seine Durchführung wurde in Ausgaben des UNIX Systems V bereitgestellt. Um Verwirrung mit der unvereinbaren älteren Version zu vermeiden, wurde diese Version manchmal "neuen awk" oder nawk genannt. Diese Durchführung wurde laut einer Lizenz der kostenlosen Software 1996 veröffentlicht, und wird noch von Brian Kernighan aufrechterhalten. (sieh Außenverbindungen unten)

Alte Versionen von Unix, wie UNIX/32V, eingeschlossen, der AWK C. Kernighan umgewandelt hat, haben ein Programm geschrieben, um awk in C ++ zu verwandeln; sein Staat ist nicht bekannt.

  • BWK awk oder nawk beziehen sich auf die Version durch Brian Kernighan. Es ist "Ein Wahrer AWK" wegen des Gebrauches des Begriffes in Verbindung mit dem Buch synchronisiert worden, das ursprünglich die Sprache und die Tatsache beschrieben hat, dass Kernighan einer der ursprünglichen Autoren von AWK war. FreeBSD bezieht sich auf diese Version als one-true-awk. Diese Version hat auch Eigenschaften nicht im Buch, solcher als, und die oben erklärt werden; sieh die Datei der ÜBLEN LAGEN im Quellarchiv für Details. Diese Version wird durch z.B verwendet. FreeBSD, NetBSD, OpenBSD und OS X.
  • Lackel (GNU awk) ist eine andere Durchführung der kostenlosen Software und die einzige Durchführung, die ernste Fortschritt-Einführen-Internationalisierung und Lokalisierung und TCP/IP-Netzwerkanschluss macht. Es wurde geschrieben, bevor die ursprüngliche Durchführung frei verfügbar geworden ist. Es schließt sein eigenes Testhilfeprogramm ein, und sein profiler ermöglicht dem Benutzer, gemessene Leistungserhöhungen zu einer Schrift zu machen, und es ermöglicht auch dem Benutzer, Funktionalität über geteilte Bibliotheken zu erweitern. Vertrieb von Linux ist größtenteils GNU-Software, und so schließen sie Lackel ein. FreeBSD vor der Version 5.0 hat Lackel-Version 3.0 eingeschlossen. (Nachfolgende Versionen von FreeBSD verwenden BWK awk, um das GNU General Public License (GPL), eine einschränkendere Lizenz zu vermeiden, als die BSD-Lizenzen.)
  • mawk ist eine sehr schnelle AWK Durchführung durch Mike Brennan, der auf einem Byte-Code Dolmetscher gestützt ist.
  • libmawk ist eine Gabel von mawk, Anwendungen erlaubend, vielfache parallele Beispiele von awk Dolmetschern einzubetten.
  • awka (welches Vorderende oben auf dem mawk Programm geschrieben wird) ist ein anderer Übersetzer von AWK Schriften in den C-Code. Wenn kompiliert, statisch einschließlich des libawka.a des Autors, werden die resultierenden executables beträchtlich beschleunigt und gemäß den Tests des Autors, vergleichen sich sehr gut mit anderen Versionen von AWK, Perl oder Tcl. Kleine Schriften werden sich in Programme von 160-170 Kilobytes verwandeln.
  • tawk (Thompson AWK) ist ein AWK Bearbeiter für Solaris, DOS, OS/2 und Windows, das vorher durch die Automationssoftware von Thompson verkauft ist (der seine Tätigkeiten aufgehört hat).
  • Jawk ist ein Projekt, AWK in Java durchzuführen, das auf SourceForge veranstaltet ist. Erweiterungen auf die Sprache werden hinzugefügt, um Zugang zu javanischen Eigenschaften innerhalb von AWK Schriften (d. h., javanische Fäden, Steckdosen, Sammlungen, usw.) zur Verfügung zu stellen.
  • jawk (der Awk des Ulks) ist eine postmoderne Durchführung von AWK in Perl, der Reihen unterstützt, Säulen durch negative Zahlen, eine Weise von Perl, und mehr mit einem Inhaltsverzeichnis versehend.
  • xgawk ist ein auf dem Lackel gestütztes Projekt von SourceForge. Es erweitert Lackel mit dynamisch loadable Bibliotheken.
  • QSEAWK ist eine eingebettete AWK Dolmetscher-Durchführung, die in die QSE Bibliothek eingeschlossen ist, die Einbetten-Anwendung, Schnittstelle programmierend (API) für C und C ++ zur Verfügung stellt.
  • BusyBox schließt eine wenig dokumentierte AWK Durchführung ein, die scheint, abgeschlossen, durch Dmitry Zakharov geschrieben zu sein. Das ist eine sehr kleine für eingebettete Systeme passende Durchführung.

Bücher

  • Der webpage des Buches schließt Downloads der aktuellen Durchführung von Awk ein und verbindet sich zu anderen.
  • Arnold Robbins hat das GNU Awk Durchführung von AWK seit mehr als 10 Jahren unterstützt. Das freie GNU Awk Handbuch wurde auch von O'Reilly im Mai 2001 veröffentlicht. Der kostenlose Download dieses Handbuches ist durch die folgenden Buchverweisungen möglich.

Siehe auch

Weiterführende Literatur

Links


ALGOL / Asgard
Impressum & Datenschutz