Professor Dr. F. Schweiggert Abteilung Angewandte
Informationsverarbeitung
Blatt 5
[c]
Allg. Informatik für WiWi (WS 2000)
Abgabetermin 30. November 2000
Auf unserem FTP-Server (/www/thales/ftp/pub/vorlesungen/ws00/prog/5)
finden Sie die Datei regexp.tex.
Diese Datei enthält die Beschreibung regulärer Ausdrücke für das
Kommando egrep im latex-Format, was hier aber nicht weiter
wichtig ist!
Holen Sie sich diese Datei und legen Sie sich für das Tutorium eine Kopie an!
Mit egrep:
- 1)
- Suchen Sie alle Zeilen, die mit mindestens einem Blank beginnen!
egrep '^<blank>' regexp.tex
- 2)
- Suchen Sie alle Zeilen, die einen tab enthalten.
(Eingabe eines tab-Zeichens bei der Bash-Shell:
^v-tab
)
egrep '<ctrl-v-tab>' regexp.tex
- 3)
- Suchen Sie alle Zeilen, bei denen am Zeilenende zwei Backslashes stehen.
egrep '\\\\$' regexp.tex
- 4)
- Suchen Sie alle Zeilen, die ein Pluszeichen enthalten.
egrep '\+' regexp.tex
- 5)
- Suchen Sie alle Zeilen, bei denen ein einzelnes Zeichen
mit je einem
+
geklammert ist.
egrep '\+.\+' regexp.tex
- 6)
- Suchen Sie allen Zeilen, bei denen mehr als ein Zeichen in eckigen Klammern
stehen.
egrep '\[..+\]' regexp.tex
- 7)
- Suchen Sie alle Zeilen, in denen mehr als ein Punkt vorkommt.
egrep '\..*\.' regexp.tex
- 8)
- Zählen Sie die Leerzeilen (am Zeilenanfang kommt sofort das newline).
(Das Kommando wc -l zählt die Zeilen von der Standardeingabe.)
egrep '^$' regexp.tex | wc -l
- 9)
- Zählen Sie alle Zeilen, die weder mit einem Backslash noch mit einem
Blank beginnen.
egrep -v '^[<blank>\]' regexp.tex | wc -l
(Bei der ähnlichen ,,Lösung`` egrep '^[^<blank>\]' regexp.tex | wc -l
werden die Leerzeilen nicht mitgezählt!)
- 10)
- Zählen Sie alle Zeilen, in denen ein
^
vorkommt
egrep '\^' regexp.tex | wc -l
- 11)
- Zählen Sie alle Zeilen, in denen ein
^
oder ein |
vorkommt.
egrep '\^|\|' regexp.tex | wc -l
(alternative Lösung: egrep '[|^]' regexp.tex | wc -l
)
Mit dem vi:
- 12)
- Gehen Sie auf die erste Zeile, bei der am Anfang ein tab steht.
:/<tab>
(alternativ, falls dies nicht funktionieren sollte: :/<ctrl-v-tab>
)
- 13)
- Ersetzen Sie alle
--
durch ---
.
:%s/--/---/g
- 14)
- Springen Sie auf die Zeile, bei der am Zeilende ein Blank steht.
:/<blank>$
- 15)
- Ersetzen Sie alle
&
durch !
.
:%s/&/!/g
- 16)
- Machen Sie diese Ersetzung rückgängig.
u
ndo
- 17)
- Ersetzen Sie alle Folgen der Form
<blank>&<blank>
nur durch ein &
.
(Achtung! Das &
im Ersatztext ist Platzhalter für den
Suchtrefferstring!)
:%s/<blank>&<blank>/\&/g
- 18)
- Springen Sie auf die erste Zeile, in der eine Folge beginnend mit
|
,
danach zwei beliebige Zeichen, danach ein |
vorkommt.
:/\|..\|
- 19)
- Springen Sie auf alle Vorkommen von Folgen, die mit einem
+
beginnen,
danach kann ein Zeichen (nicht aber der Buchstabe c
) kommen,
danach wieder ein +
.
:/\+[^c]\{0,1\}\+
- 20)
- Klammern Sie alle Folgen der Form
| zwei Zeichen |
mit "
(Doppelapostroph).
:%s/\|..\|/"&"/g
- 21)
- Machen Sie 20 rückgängig!
u
ndo
- 22)
- Ersetzen Sie alle Folgen
|zwei Zeichen|
durch +dieselben Zeichen+
.
:%s/\|\(..\)\|/+\1+/g
Viel Erfolg!
Johannes Mayer
2000-11-30