04.11.2013 Aufrufe

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)

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!