2006
AWK Referenz
Arrays
Die Namen von AWK-Arrays unterliegen der gleichen Syntax wie
andere Variable. Auch wenn die Arrays in AWK denjenigen in C sehr ähnlich sind,
gibt es wesentliche Unterschiede:
- Wie alle anderen Variablen auch, müssen Arrays in AWK nicht initialisiert
werden, insbesondere muss die Grösse nicht vorher festgelegt werden. - Als Indezes können beliebige Strings verwendet werden und Integer als
Indizes müssen nicht aufeinanderfolgend sein! - Es handelt sich um assoziative Arrays, d.h. jedes Array ist eine Menge von
Paaren bestehend aus Index und zugehörigem Wert.
Im folgenden
Beispiel werden verschiedene Temperaturen dem Array “Temperatur” zugewiesen.
Temperatur["Singen"] = 24Temperatur["Konstanz"] = 22Temperatur["Redmond"] = -24 |
Will man sich das gesamte Array ausgeben
lassen, so geht dies wie folgt:
for (x in Temperatur) { print "Temperatur in "x": "Temperatur[x] }
|
Worthäufigkeiten in einem Text
Das folgende Skript ermittelt die
Worthäufigkeiten in einer Datei. Jedes Wertepaar einer Ausgabezeile entspricht:
(Länge der Worte, Häufigkeit)
Anmerkung: NF ist eine vordefinierte
Variable, die die Anzahl der Felder pro Zeile angibt. Jedes Feld (field) ist
standardmässig durch Leerzeichen, Zeilenanfang oder Zeilenende begrenzt. Man kann
den Feld-Seperator durch folgende Anweisung von einem Leerzeichen z.B. zu einem
Komma ändern: FS = “,”
{ for (i=1; i <= NF; i++) { wlen[length($i)]++ }}
END { for (x in wlen) { print x" "wlen[x] }}
|
powered by performancing firefox

