Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
[x] HTML-TAGs mittels awk oder sed entfernen

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Lateralus
prolinux-forum-admin


Anmeldungsdatum: 05.05.2004
Beiträge: 1238

BeitragVerfasst am: 03. Feb 2006 18:53   Titel: [x] HTML-TAGs mittels awk oder sed entfernen

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

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


Code:
echo "<a href=\"_blank\">leere seite</a>" | awk ' { gsub("<*>", ""); print } '
<a href="_blank"leere seite</a


Was mache ich falsch?


Zuletzt bearbeitet von Lateralus am 04. Feb 2006 11:15, insgesamt 1-mal bearbeitet
 
Benutzer-Profile anzeigen Private Nachricht senden

klopskuchen
prolinux-forum-admin


Anmeldungsdatum: 26.06.2004
Beiträge: 1444

BeitragVerfasst am: 03. Feb 2006 23:51   Titel:

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 .
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 04. Feb 2006 10:50   Titel:

Hi,

es ist der Reguläre Ausdruck, der Dir (Euch?) Sorgen bereitet.
Code:
<*>
übersetzt sich in "Beliebig viele < (auch 0 < erlaubt), gefolgt von >". Das ist sicher nicht, was ihr wollt. Nehmt statt dessen besser
Code:
<[^>]*>
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..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Lateralus
prolinux-forum-admin


Anmeldungsdatum: 05.05.2004
Beiträge: 1238

BeitragVerfasst am: 04. Feb 2006 11:11   Titel:

@klopskuchen
Man wird sich ja wohl hin und wieder ein bisschen Zeit für Hobbys nehmen dürfen. Wink 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.
 
Benutzer-Profile anzeigen Private Nachricht senden

Marco Gerber
Gast





BeitragVerfasst am: 17. Feb 2006 19:38   Titel:

tach

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

sed -e ':a s/<[^>]*>//g;/</N;//ba'



greetz by
Marco
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy