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