Zeilen bedingt zusammenfassen (Anfaengerfrage?)

Zeilen bedingt zusammenfassen (Anfaengerfrage?)

am 08.07.2006 21:22:29 von Mai Kee

ich möchte mehrzeilige Texte zusammenfassen, wenn in der 2. ein
teilweise fester und in der 3. ein fester string steht, z.b.:

/ein/langer/pfad --> anderer/langer/pfad
revision 1.3
okay

soll werden:

/ein/langer/pfad --> anderer/langer/pfad, revision (1.3) okay

oder gleich:

/ein/langer/pfad (1.3) okay


versucht habe ich es mit
s/(.*)$revision(.*)$okay/\1, revision (\2) okay$/g
und
s/^(.*)$^revision(.*)$^okay$/\1, revision (\2) okay/g

und weiteren sehr ähnlichen Variationen, aber die treffen nie auf eine
meiner Zeilen zu. Auch mit dem GNU-Tool 'sed' habe ichs probiert, das
scheint sehr identisch mit s///g zu arbeiten, richtig? Gibng genauso
wenig.
Leitet mich mal bitte jmd auf eine gute FAQ zu diesem Thema?


Mai K. R.

--
und wech...

Re: Zeilen bedingt zusammenfassen (Anfaengerfrage?)

am 08.07.2006 21:49:27 von Paul Hink

Mai K Reiss wrote:

> ich möchte mehrzeilige Texte zusammenfassen, wenn in der 2. ein
> teilweise fester und in der 3. ein fester string steht, z.b.:
>
> /ein/langer/pfad --> anderer/langer/pfad
> revision 1.3
> okay
>
> soll werden:
>
> /ein/langer/pfad --> anderer/langer/pfad, revision (1.3) okay
>
> oder gleich:
>
> /ein/langer/pfad (1.3) okay
>
>
> versucht habe ich es mit
> s/(.*)$revision(.*)$okay/\1, revision (\2) okay$/g
> und
> s/^(.*)$^revision(.*)$^okay$/\1, revision (\2) okay/g
>
> und weiteren sehr ähnlichen Variationen, aber die treffen nie auf eine
> meiner Zeilen zu.

s/^(.*)\nrevision (.*)\nokay$/\1, revision (\2) okay/mg;
s/^(.*) --> .*\nrevision (.*)\nokay$/\1 (\2) okay/mg;

> Auch mit dem GNU-Tool 'sed' habe ichs probiert, das scheint sehr
> identisch mit s///g zu arbeiten, richtig?

Nur scheinbar. Es gibt diverse Unterschiede zwischen
sed-Regular-Expressions und Perl-Regular-Expressions.

> Gibng genauso wenig. Leitet mich mal bitte jmd auf eine gute FAQ zu
> diesem Thema?

Ist zwar keine FAQ, aber `man perlre` und `man perlretut` finde ich
manchmal ganz hilfreich (oder auch eine der anderen Regular-Expression-
bezogenen Manpages, die in `man perl` aufgeführt sind).

Paul