PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Html-Datei per sed beschneiden


CannedCaptain
2006-09-29, 15:51:29
Ich möchte aus einer html Datei alles zwischen den <body> </body> tags ausschnippeln. Es soll so aussehen

cat foobar.html | sed bla > neu.txt

Ich habe nun 2 Stunden im Netz damit verbracht, das bla ausfindig zu machen. Möchte es mir jemand veraten, der Ahnung hat.

Danke

CannedCaptain
2006-10-01, 23:04:36
*schieb*

Sephiroth
2006-10-02, 00:34:31
schuß ins blaue
cat foobar.html | sed -r -e 's/<body>(\s|.)*<\/body>/<body><\/body>/ig' > neu.txt
anpassungen wären beim öffnenden body-tag nötig, falls dieser zusätzliche attribute hat.

hier unter cygwin mag sed nur keine zeilenumbrüche, daher klappt das her gerade auch nicht :-/

p.s.
das würde den kram zwischen dem body-tags entfernen oder habe ich dich da falsch verstanden?

CannedCaptain
2006-10-02, 22:46:25
schuß ins blaue
cat foobar.html | sed -r -e 's/<body>(\s|.)*<\/body>/<body><\/body>/ig' > neu.txt
anpassungen wären beim öffnenden body-tag nötig, falls dieser zusätzliche attribute hat.

hier unter cygwin mag sed nur keine zeilenumbrüche, daher klappt das her gerade auch nicht :-/

p.s.
das würde den kram zwischen dem body-tags entfernen oder habe ich dich da falsch verstanden?

Das Inverse hätte ich gerne. Ich möchte alles zwischen den body tags als stream.

Harleckin
2006-10-03, 13:03:55
#!/usr/bin/gawk
#
# http://www.forum-3dcenter.org/vbulletin/showthread.php?t=323235
#
/<body/ { foobar = "1" };
foobar == 1 { print $0 };
/<\/body>/ { foobar = "0" };


$ gawk -f foo.gawk bar.html

CannedCaptain
2006-10-03, 18:42:49
Danke! Das war eine große Hlfe.