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. 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 -- Need professional mod_perl support? Just hire me: torsten.foertsch@gmx.net -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org