[x] HTML-TAGs mittels awk oder sed entfernen

Post Reply
Message
Author
User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

[x] HTML-TAGs mittels awk oder sed entfernen

#1 Post by Lateralus »

Ich versuche aus HTML-Dateien den reinen Text herauszuziehen. Leider funktioniert das nicht ganz so, wie ich es mir denke:

Code: Select all

echo "<a href=\"_blank\">leere seite</a>" | sed -e 's/<*>//g'
<a href="_blank"leere seite</a

Code: Select all

echo "<a href=\"_blank\">leere seite</a>" | awk ' &#123; gsub&#40;"<*>", ""&#41;; print &#125; '
<a href="_blank"leere seite</a
Was mache ich falsch?
Last edited by Lateralus on 04. Feb 2006 11:15, edited 1 time in total.

klopskuchen
prolinux-forum-admin
Posts: 1444
Joined: 26. Jun 2004 21:18
Contact:

#2 Post by klopskuchen »

Seit anderthalb Stunden frickel ich rum. Warum zum *grmpf#§!argh!%#* das nicht will... Falls es nicht unbedingt sed oder awk sein sollen:
lynx -dump bar.htm >foo.txt

ps. Wieso spielst du mit scripten rum, ich denke du lernst? *Zeigefinger erheb*


Gruß, Klopskuchen
When all else fails, read the instructions .

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#3 Post by jochen »

Hi,

es ist der Reguläre Ausdruck, der Dir (Euch?) Sorgen bereitet.

Code: Select all

<*>
übersetzt sich in "Beliebig viele < (auch 0 < erlaubt), gefolgt von >". Das ist sicher nicht, was ihr wollt. Nehmt statt dessen besser

Code: Select all

<&#91;^>&#93;*>
Das steht für "Genau ein <, gefolgt von beliebige vielen beliebigen Zeichem die aber kein > sein dürfen, gefolgt von genau einem >". Damit sollten alle Tags herausgeschmissen werden - ob mit sed oder awk ist dann einerlei.

Es könnte aber Fälle geben, wo ihr damit immer noch Probleme habt - JavaScript oder Inline-CSS im HTML könnten Euch einen Strich durch die Rechnung machen. Aber für eine erste Näherung reicht's.

Jochen
Die grösste Lüge der EDV? "Mal eben..."

User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

#4 Post by Lateralus »

@klopskuchen
Man wird sich ja wohl hin und wieder ein bisschen Zeit für Hobbys nehmen dürfen. ;-) Ganz ehrlich: Ich hätte mit diesem Skript nicht anfangen sollen; es lässt mir keine Ruhe mehr.

@Jochen
Vielen Dank. Es geht nur um die Seiten-Indices von www.kernel.org/pub/linux/kernel und darunter. Da klappt das auf jeden Fall.

Marco Gerber

#5 Post by Marco Gerber »

tach

Um mehrere Tags zu entfernen, empfielt es sich, eine Schlaufe zu verwenden:

Code: Select all

sed -e '&#58;a s/<&#91;^>&#93;*>//g;/</N;//ba'

greetz by
Marco

Post Reply