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 / Bedingte Anweisungen in awk

Bedingte Anweisungen in awk

Kategorie: awkErstellt: 02.10.2007 - 23:58 Geändert: 31.10.2007 - 11:59
Autor: Stefan Abu Salah
0Wie jede gute Programmier- oder Skriptspache kennt auch awk bedingte Anweisungen. Bedingte Anweisungen ermöglichen es einem Programm auf gewisse Zustände und Eingaben zu reagieren. Generell bietet awk die aus anderen Sprachen bekannte if/else - Anweisung. Switch/case - Anweisungen stehen unter awk jedoch nicht zur Verfügung.
Prinzipieller Aufbau:


if( AUSDRUCK ) { ANWEISUNG } else { ANWEISUNG }

Einfaches Beispiel:


if( $1 == "Egon" )
{
print "Gefunden";
}

Vergleichsoperatoren:
WERT1 == WERT2 Die Werte sind gleich
WERT1 != WERT2 Die Werte sind ungleich
INTEGER1 >= INTEGER2 Zahl 1 ist größer oder gleich Zahl 2
INTEGER1 > INTEGER2 Zahl 1 ist größer als Zahl 2
INTEGER1 <= INTEGER2 Zahl 1 ist kleiner oder gleich Zahl 2
INTEGER1 < INTEGER2 Zahl 2 ist kleiner als Zahl 2


Im folgenden soll ein kleines Beispiel das Benutzen von bedingten Anweisungen unter awk verdeutlichen. Hierfür nutzen wir wieder die Textdatei "schausteller". Gesucht seien in diesem Beispiel alle Schausteller (Name und Vorname) aus Chemnitz und Bremen. Die Anzahl der gefundenen Einträge soll am Ende des Programms ausgegeben werden.
Zur Erinnerung das Ende der Datei Schausteller:

stefan@troubadix/home/stefan$ tail -n 5 schausteller
Walther Lothar 09125 Chemnitz 0374545457
Wambold Werner 35579 Wetzlar 01745454567
Walther Philipp 09125 Chemnitz 01745454539
Zorn Michael 52249 Eschweiler 024045454539
Zschaler Hubert 28215 Bremen 017454545

Beispiel: Wer wohnt in Chemnitz oder Bremen?

#!/usr/bin/awk -f
# Dateiname: awk_1

BEGIN {
chemnitz=0;
bremen=0;
sonst=0;
}

{
if( $3 == "09125" )
{
print $1 " " $2;
chemnitz++;
}
else if( $4 == "Bremen" )
{
print $1 " " $2;
bremen++;
}
else
{
sonst++;
}
}

END {
print "Es wohnen " anzahl " Personen in Chemnitz";
print "Es wohnen " bremen " Personen in Bremen";
print "Es wohnen " sonst " Personen irgendwo sonst";
}

stefan@troubadix/home/stefan$ awk -f awk_1 schausteller
Finnendahl Friedrich
Walther Lothar
Walther Philipp
Es wohnen 2 Personen in Chemnitz
Es wohnen 1 Personen in Bremen
Es wohnen 68 Personen irgendwo sonst

awk kennt keine switch/case - Anweisung



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 / Bedingte Anweisungen in awk
simplum