Hi, On Fri, 21 Feb 2003, Werner Schalk wrote:
Der Suchstring (Kategorie, Beschreibung, Kurz, Lang) steht in einer Zeile mit weiteren HTML-Befehlen, er leitet also nicht die Zeile ein. Ein Beispiel (Alle Kategorien, Beschreibungen, Kurz- und Langtexte stehen alle in einer Zeile, inkl. HTML-Code):
Ohh, d.h., das pro Zeile mehr als eine Kategorie vorkommen kann? Aber es ist wenigstens so, dass Kategorie+Kurz+Lang _nicht_ ueber mehrere Zeilen verteilt sind, ja?
ndeneve<h1>vfepo<a href>vbdsdsvsvsbvv>Kategorie: 4.20 - 4.25<br> Beschreibung:<B>Computer & Hardware </B>Computerteile aller Art<br>wjfjwbfsp<hr>blafaselsa<Hr>svsvblablablubbsbvv>Kategorie: 4.20 - 4.25<br> Beschreibung:<B>Computer & Hardware </B>Computerteile aller Art<br>wjfjwbfsp<hr>dsdsvsvsbvv> <br>wjfjwbfsp ncdende<h1> nevevfepovbe evbeovebveovbeove
Dein Beispiel funktioniert schon, ich habe das "^"-Zeichen herausgenommen, da die Zeile ja nicht von meinem Suchstring eingeleitet wird: sed -ne 's@Kategorie: \([^<]*\)<br>Beschreibung: <B>\([^<]*\)</B>\([^<]*\)<br>.*$@\1:\2:\3@p'
Also in dem Fall wuerde ich zweiteilen: Zuerst mal sicherstellen, das pro Kategorie eine Zeile, und dann das Aufteilen der Werte. Also % cat bla.html | sed -e 's/Kategorie:/\nKategorie:/g' | \ sed -ne 's@^.*Kategorie: \([^<]*\)<br>Beschreibung: <B>\([^<]*\)</B>\([^<]*\)<br>.*$@\1:\2:\3@p' Ciao, Micha.