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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

7. Textmusterverarbeitung mit awk 65<br />

7.2. Die Sprachelemente <strong>von</strong> awk<br />

Die Syntax <strong>von</strong> awk stimmt in vielen Punkten mit <strong>de</strong>r C-Syntax überein.<br />

Datentypen und Variable<br />

Es existieren numerische Daten und Zeichenkettendaten. Zeichenketten wer<strong>de</strong>n in Anführungsstriche gesetzt.<br />

Variable brauchen nicht <strong>de</strong>klariert wer<strong>de</strong>n, sie sind bei ihrer ersten Erwähnung im Programm implizit<br />

<strong>de</strong>klariert. Variablennamen beginnen grundsätzlich mit einem Buchstaben ( abc, e534, a[10] ).<br />

Neben <strong>de</strong>n frei <strong>de</strong>finierbaren Variablen gibt es einige eingebaute Variable.<br />

Statische eingebaute Variable:<br />

RS<br />

ORS<br />

FS<br />

OFS<br />

OFMT<br />

Trennzeichen für Eingabezeilen (LF)<br />

Trennzeichen für Ausgabezeilen (LF)<br />

Feldtrennzeichen für die Eingabe (SPACE, TAB)<br />

Feldtrennzeichen für die Ausgabe (SPACE, TAB)<br />

Steuerstring für die Ausgabe numerischer Werte<br />

Dynamische eingebaute Variable:<br />

NR<br />

NF<br />

FILENAME<br />

Number of Record, aktuelle Zeilennummer<br />

Number of Fields, aktuelle Feldanzahl <strong>de</strong>r Eingabezeile<br />

Name <strong>de</strong>r aktuellen Eingabedatei<br />

Operatoren und Ausdrücke<br />

Es gibt numerische und nichtnumerische Operationen. Das Ergebnis einer Operation ist abhängig vom<br />

Operator und <strong>de</strong>n Werten <strong>de</strong>r verwen<strong>de</strong>ten Operan<strong>de</strong>n. Der Typ <strong>de</strong>r Operation dient als primäres Entscheidungskriterium<br />

für die Wertermittlung.<br />

Als numerische Operatoren sind die Zeichen + - * / % ++ -- zugelassen. Klammerausdrücke<br />

sind erlaubt. Als nicht-numerische Operation ist die Verkettung <strong>de</strong>finiert.<br />

rechner> awk ’{print 3 + 4}’<br />

rechner> awk ’{print "3" + "4"}’<br />

rechner> awk ’{print 3 + 4"5"}’<br />

rechner> awk ’{print 3 + (4"5")}’<br />

ergibt 7, da numerische Operation<br />

ergibt ebenfalls 7, da die Operation numerisch<br />

ist<br />

Mischung <strong>von</strong> numerischer und nichtnumerischer<br />

Operation; die Verkettung<br />

wird zum Schluss ausgeführt; Ergebnis<br />

ist 75<br />

Ergebnis ist 48, da die Klammern die<br />

Auswertungsreihenfolge beeinflussen<br />

Als Vergleichsoperatoren sind dieselben Operatoren wie in <strong>de</strong>r Programmiersprache C gebräuchlich: ==<br />

!= < > = . Wenn die Vergleichsoperan<strong>de</strong>n unterschiedlichen Typs sind, wird <strong>de</strong>r numerische Operand<br />

als Zeichenkettentyp interpretiert. Vorsicht bei Zeichenkettenvergleichen: Die Werte wer<strong>de</strong>n linksbündig<br />

verglichen (d.h. ”12” < ”2” ist true). Verknüpfungen <strong>von</strong> Vergleichsoperationen erfolgen mit <strong>de</strong>n<br />

Operatoren ! (NOT), && (AND) und || (OR).

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!