Notice: Undefined index: string in /var/www/stefan/howtux.de/htdocs/article.php on line 49

Notice: Undefined index: settings in /var/www/stefan/howtux.de/htdocs/article.php on line 61
Home / awk / Rechnen mit awk

Rechnen mit awk

Kategorie: awkErstellt: 02.10.2007 - 23:58 
Autor: Stefan Abu Salah
0

Rechnen mit awk

awk bietet wesentlich mehr Mittel um mit Zahlenwerten zu rechnen als beispielsweise die Shell. Insbesondere ist es awk möglich mit Fließkommazahlen umzugehen. Für die Berechnungen ist es egal ob direkt mit Zahlenwerten oder mit Inhalten von Variablen gerechnet wird. Die folgende Tabelle zeigt die Möglichen Operatoren.

Arithmetische Operatoren in awk

+ Addition
- Subtraktion
* Multiplikation
/ Division
^ Exponent
% Restklasse

Man sollte sich immer im Klaren darüber sein, welche Operatoren man aucf welche Variablen ansetzt. Es gibt in awk beispielsweise keine Fehlermeldung, wenn man einen String durch eine Zahl teilt.

Beispiel: Ein einfaches Beispiel (Zählen der Eingabezeilen)
#!/usr/bin/awk -f

BEGIN {
summe=0;
}

{
summe=summe+1;
}

END {
print summe;
}

Beispiel: Ein weiteres einfaches Beispiel
#!/usr/bin/awk -f

BEGIN {
summe=0;
}

{
summe=summe+1;
wert[1]=summe/3;
wert[2]=summe%3;
wert[3]=summe^3;
print summe " " wert[1] " " wert[2] " " wert[3]
}

# Folgende Ausgabe würde erzeugt werden (bei Eingabe von vier Zeilen):
1 0.333333 1 1
2 0.666667 2 8
3 1 0 27
4 1.33333 1 64

Neben diesen einfachen Operatoren gibt es in awk, wie in den meisten anderen Programmiersprachen, Vereinfachungen, wenn man nur den Wert einer Variablen ändern möchte und zur Berechnung ausschließlich diese Variable genutzt wird. Win gutes Beispiel ist das folgende:

Beispiel: Ein Beispiel
#!/usr/bin/awk -f

BEGIN {
summe=0;
}

{
summe=summe+1;

# kann auch geschrieben werden als:
summe+=1

# oder als:
summe++;
}

Weitere Operatoren in awk

VARIABLE += WERT Addition von WERT auf VARIABLE
VARIABLE -= WERT Subtraktion von WERT von VARIABLE
VARIABLE *= WERT Multiplikation von VARIABLE mit WERT
VARIABLE /= WERT Division von VARIABLE mit WERT
VARIABLE ^= WERT VARIABLE hoch WERT
VARIABLE %= WERT Restklasse von VARIABLE geteilt duch WERT
VARIABLE++ Post-Inkrement
++VARIABLE Pre-Inkrement
VARIABLE-- Post-Dekrement
--VARIABLE Pre-Dekrement



Notice: Undefined variable: urli in /var/www/stefan/howtux.de/htdocs/classes.php on line 240
Bookmark auf del.icio.usBookmark auf Mister WongBookmark auf BlinklistBookmark auf GoogleBookmark auf LinkarenaBookmark auf YiggBookmark auf FolkdBookmark auf Yahoo
Home / awk / Rechnen mit awk
simplum