Ein Aufruf (Perl)
tr /<[a-zA-Z0-9äöüß]>//
oder (Shell)
tr -d '<[a-zA-Z0-9äöüß]'
löscht aber den kompletten Text, nicht nur die Tags.
Klar - tr ist nicht kontextsensitiv genug.
Ich vermute, mit awk kann man das Problem lösen, aber ich kann nicht gut genug awk, um selbst eine Lösung hinzuschreiben.
Wenn Perl vorhanden ist, würde ich Perl nehmen.
Ich wuerde wahrscheinlich so was probieren wie:
foreach $Zeile (@Inputzeilen) # vorher eingelesen
{
»» $Zeile =~ s/<.*?>//gi;
»» push(@Outputzeilen,$Zeile);
}
Und @Outputzeilen dann hinterher in die Datei zurueckschreiben.
Dasselbe Problem hatte ich bei meinem "SiteMap-Generator" (der parst aus HTML-Dokument bisher gerade mal das <TITLE>-Tag heraus).
Weil ich mich aber nicht darauf verlassen will, daß Tags in derselben Zeile geschlossen werden, habe ich zunächst den gesamten Dateiinhalt in eine Variable eingelesen und darin dann entsprechende regular expressions ausgeführt.
Natürlich kann ein solcher Tags-Stripper nur funktionieren, wenn das HTML-Dokument syntaktisch in Ordnung ist. Wenn da jemand das Zeichen "<" in den normalen Text geschrieben hat, dann werden die meisten Browser das verkraften - aber der "Stripper" nicht.