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@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org