Re: Suche nach RegEx für sed
Am Montag, 16. April 2007 15:15 schrieb Michael Welle:
> Hallo,
>
> Frank Küster <frank@debian.org> writes:
> > Goran <xamiw@arcor.de> wrote:
>
> [...]
>
> > Im Prinzip mit Negation in bracket expressions, siehe regex(7):
> >
> > s/[^;]*;[^;]*;\([^;]*\);.*/\1/
> >
> > ergibt den Inhalt zwischen zweitem und drittem Semikolon. Für 26
> > möchte ich das allerdings nicht schreiben (oder gar lesen) müssen.
> > Da empfehle ich eher was mit einer komplexeren Skriptsprache (Perl,
> > Python,... je nach Geschmack) oder einfach cut:
>
> /^\([^;]*;\)\{26\}xx;.*$/d
@OP:
alle diese Lösungen "hoffen" übrigens, das zwischen 2 Semikolons
kein "gequotetes" Semikolon (z.B. ..;"xx;yy";..) steht. Falls das
vorkommen kann, wird es nämlich schwierig, da es nicht mehr als
regulärer Ausdruck (nichtmal mehr kontextfrei) geschrieben werden kann.
Vielleicht lässt es sich mit den Perl Regex-Erweiterungen (non-greedy
und co. die ja mehr als reguläre Sprachen erfassen) doch bauen.
Vielleicht weiß dazu ja einer der Perl Experten mehr. Ich vermute aber,
das hier selbst Perl (mit nur einer Regex) aussteigt.
--
Markus Schulz
Reply to: