Unix-Linux, Eine Einführung von Wolfgang Paulina (de)
Unix-Linux, Eine Einführung von Wolfgang Paulina (de)
Unix-Linux, Eine Einführung von Wolfgang Paulina (de)
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
7. Textmusterverarbeitung mit awk<br />
awk ist eine Programmiersprache, die für das Durchsuchen und die Manipulation <strong>von</strong> Textdaten entworfen<br />
wur<strong>de</strong>. Der Name awk leitet sich <strong>von</strong> <strong>de</strong>n drei Autoren Aho, Weinberger und Kernighan ab.<br />
Die Basisfunktion <strong>de</strong>r Sprache besteht im zeilenweisen Durchsuchen <strong>de</strong>r Eingabe nach vom Benutzer spezifizierten<br />
Auswahlbedingungen, <strong>de</strong>nen entsprechen<strong>de</strong> Aktionen zugeordnet wer<strong>de</strong>n können. Die Anwendungsbereiche<br />
<strong>von</strong> awk liegen in <strong>de</strong>r Datenauswertung und -aufbereitung, <strong>de</strong>r Datenvalidation und <strong>de</strong>r<br />
Datentransformation.<br />
Für einige <strong>de</strong>r nachfolgen<strong>de</strong>n Beispiele wird eine Datei namens daten mit folgen<strong>de</strong>m Inhalt verwen<strong>de</strong>t:<br />
23 otto huber<br />
34 hugo habicht<br />
43 OTTO Albers Hamburg<br />
12078677345444<br />
11 ina <strong>de</strong>ter<br />
0 rudi ratlos<br />
26 peter lustig<br />
44 elly heuss<br />
88 mani held<br />
14 egon erpel<br />
76 bodo ballermann<br />
90 andrea doria<br />
7.1. Aufruf und Programmstruktur<br />
Es gibt die Möglichkeit, <strong>de</strong>n awk-Programmtext über eine Programmdatei o<strong>de</strong>r direkt einzugeben. Der<br />
awk-Aufruf kann auch innerhalb eines shell-scripts erfolgen.<br />
awk ’programmtext’ [ inputfile ... ]<br />
awk -f programmdatei [ inputfile ... ]<br />
Nach <strong>de</strong>m Aufruf wird <strong>de</strong>r Programmtext auf syntaktische Korrektheit geprüft. Fehlermeldungen kennzeichnen<br />
<strong>de</strong>n ungefähren Ort <strong>de</strong>s Fehlers ( awk: syntax error near line 10 ). Laufzeitfehler<br />
dagegen wer<strong>de</strong>n genau lokalisiert ( awk: division by zero, record number 10 ).<br />
Der übergeordnete Kontrollfluss im awk-Programm besteht aus einer Hauptschleife, die nacheinan<strong>de</strong>r alle<br />
Eingabezeilen liest. Je<strong>de</strong> Eingabezeile wird sequentiell mit allen aufgeführten Bedingungen verglichen.<br />
wenn Bedingung erfüllt -> dann Aktion ausführen