Erläuterungen
Schwierigkeitsgrad der Übungen:
... sehr einfach ... ein bisschen schwieriger
Lösungen:

Die Links zu den Lösungen sind per Link-Bild realisiert. Im Gegensatz zu den üblichen Wikibooks-Gepflogenheiten gelangen Sie durch einen Klick auf das Symbol zur entsprechenden Lösungsseite.


Übungen

Bearbeiten

Gegeben sei die Datei pupil folgenden Inhalts:

Name            Klasse  Deutsch Mathematik Physik
-------------------------------------------------------
Hans            1a      1       2          3 
Frieda          2b      3       2          2
Helga           1b      2       1          1
Michael         1a      2       1          3
Olga            2a      3       1          2
Karl-Hans       3c      3       4          2

Simple reguläre Ausdrücke

Bearbeiten
Aufgabe
A10   Gegeben sei die Anweisung awk '/1a/' pupil. Welche Datensätze werden durch Ausführung dieser Anweisung ausgegeben?
A20   Gegeben sei die Anweisung awk '$3~/2/ {print $1}' pupil. Welche Daten werden durch Ausführung dieser Anweisung ausgegeben?
A30   Erstellen Sie ein awk-Skript, welches alle Schülerdatensätze aus der Textdatei pupil auf der Standardausgabe listet, in deren Namensspalte die Zeichenkette Hans vorkommt.


Beliebige Zeichen

Bearbeiten
Aufgabe
A40   Gegeben sei die Datei pupil. Erstellen Sie ein awk-Skript, das die Datensätze aller Schüler mit einem Namen länger als 5 Zeichen aus dieser Datei auf der Standardausgabe listet.


Aufgabe
A50   Gegeben sei die Anweisung awk '$1~/a$/' pupil. Welche Datensätze werden durch Ausführung dieser Anweisung ausgegeben?
A60   Erstellen Sie ein awk-Skript, das alle Datensätze der Datei pupil mit dem Schülernamen Hans ausgibt.


Zeichenklassen

Bearbeiten
Aufgabe
A70   Gegeben sei die Anweisung awk '/^[A-H]/' pupil. Welche Datensätze werden durch Ausführung dieser Anweisung ausgegeben?
A75   Gegeben sei die Anweisung awk '/^[^A-H]/' pupil. Welche Datensätze werden durch Ausführung dieser Anweisung ausgegeben?
A80   Erstellen Sie ein awk-Skript, das entsprechende Datensätze der Datei pupil unter folgender Voraussetzung ausgibt: Das zweite Zeichen im Datensatz muss der Buchstabe a oder e sein.


Alternativen

Bearbeiten
Aufgabe
A90   Gegeben sei die Anweisung awk '$1~/Hans|Olga/' pupil. Welche Datensätze werden durch Ausführung dieser Anweisung ausgegeben?
A100   Erstellen Sie ein awk-Skript, das entsprechende Datensätze der Datei pupil unter folgender Voraussetzung ausgibt: Die Schülernamen beginnen mit Ha, He oder Ka.


Gruppierung

Bearbeiten
Aufgabe
A110   Liefern die Anweisungen awk '$1~/^(Ha|Ka).../' pupil und awk '$1~/^Ha|Ka.../' pupil das gleiche Ergebnis?


Wiederholungen

Bearbeiten
Aufgabe
A120   Erstellen Sie ein awk-Skript, das Datensätze der Datei pupil unter folgender Voraussetzung ausgibt: Der Schülername beginnt mit H und endet mit s.
A130   Gegeben ist die Anweisung awk '/^Ha{2,}llo$/'. Nach Start dieser Anweisung werden über die Standardeingabe die Strings
  • Hallo
  • Haaallodi
  • Haaaallo

eingegeben. Welche davon werden über das awk-Skript, d.h nicht nur als Echo, an die Standardausgabe weitergeleitet?

A140   Erstellen Sie ein awk-Skript, das Datensätze der Datei pupil unter folgender Voraussetzung ausgibt: Der Schülername sei   Zeichen lang mit   (also Namen die 2, 4, 6, 8, ... Zeichen lang sind).


Weitere Aufgaben

Bearbeiten
Aufgabe
W10   Geben sie einen regulären Ausdruck an, der auf alle Strings passt, die aus mehr als 2 Zeichen bestehen, mit einem Großbuchstaben beginnen und mit einer Ziffer enden.
W20   Geben sie einen regulären Ausdruck an, der Gleitkommazahlen repräsentiert. Beispiele für Gleitkommazahlen:
  • -2
  • +3.67801
  • 56.
  • 3.1e34
  • -569E-4
  • .65E+9

Eingaben, auf die der reguläre Ausdruck nicht zutreffen darf, sind bspw.:

  • abc
  • 5ab
  • ab2
  • 1a2
  • .
  • (leere Eingabe)


W30   Geben Sie einen regulären Ausdruck für eine Zeichenkette bestehend aus den Buchstaben W und F an, bei der sowohl die Summe der Buchstaben W, als auch die der Buchstaben F eine gerade Zahl ergibt. Beispiele:
  • WWFF
  • FWFW
  • WFFFFW
  • WWWFFWFFWWFWWF
  • WFFWFWW (Summe der Buchstaben F ist ungerade)