Mailinglist Archive: opensuse-de (989 mails)

< Previous Next >
Re: sed über mehrere Zeilen will nicht
  • From: Joerg Thuemmler <listen@xxxxxxxxxxxxxxxxxxxxx>
  • Date: Wed, 23 Sep 2009 16:15:05 +0200
  • Message-id: <4ABA2D69.1010006@xxxxxxxxxxxxxxxxxxxxx>
Torsten Foertsch schrieb:
On Wed 23 Sep 2009, Joerg Thuemmler wrote:
ich hatte es nicht für ein Problem gehalten: sed soll mir in
Abhängigkeit von der Verwendung bestimmte Bereiche aus html-Dateien
entfernen, die in Kommentare eingeschlossen sind. Die Bereiche können
über mehrere Zeilen gehen... müssen aber nicht. Also etwa so:
...
blabla<!--START-->das soll raus
das auch
bis hierher<!--ENDE-->blubblub...
...
Ich dachte, ein primitives

sed -e 's/<!--START-->.*<!--ENDE-->//g'

würde es tun. Tut es aber nicht, auch nicht mit diversen Quotings. Es
erwischt nur Bereiche, die in einer Zeile liegen. Irgendwo hab ich
ein Brett vorm Kopf.

Sed arbeitet ZEILENWEISE.


Ja, das wußte ich... dachte nur, es gäbe einen Trick, das zu umgehen

Nimm doch einfach Perl:

echo -e 'a<a>\nbb\ncc</a>d x<a>\nbb\ncc</a>y' |
perl -pe 'BEGIN {undef $/} s!<a>.*?</a>!!gs'


$ echo -e 'a<a>\nbb\ncc</a>d x<a>\nbb\ncc</a>y'
a<a>
bb
cc</a>d x<a>
bb
cc</a>y

$ echo -e 'a<a>\nbb\ncc</a>d x<a>\nbb\ncc</a>y' |
perl -pe 'BEGIN {undef $/} s!<a>.*?</a>!!gs'
ad xy


Torsten


Danke, Torsten,

perl ist nicht mein Ding, aber ich sehe immer wieder, dass vieles damit
sehr schnell geht... zumindest diesen Schnipsel versuche ich mal zu
verstehen ;-)

Danke jedenfalls

cu jth

--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx

< Previous Next >