[bash] sed
Reguläre Ausdrücke finden immer den längsten passenden String. Das kann manchmal unerwünscht sein. Will man zum Beispiel eine HTML-Seite in Text umwandeln, dann könnte man in Versuchung kommen folgendes Script zu verwenden:
sed -e 's/<.*>//g' text.html
Das liefert aber nicht den gewünschten Effekt, denn eine Zeile
Das <b>ist</b> ein <i>Beispiel</i>.
wird zu
Das.
verkrüppelt. Man muss also nur jene Zeichen bis zum ersten ‘>’ löschen:
sed -e 's/<[^>]*>//g' text.html
Muss man einen Text nicht bis zum ersten Vorkommen eines Zeichens sondern einer Zeichenkette bearbeiten, wird die RE ein bisschen komplizierter. Im Kapitel mit den Beispielen findet sich dazu ein Lösungsansatz (Löschen von Kommentaren).