Frage

Ich habe eine CSV-Datei im Format:

270291014011    ED HARDY - TRUE TO MY LOVE - Cap NEU 2008 NEU       0,00 €  0,00 €  0   1   0   22.10.2008 03:37:10 21.11.2008 02:37:10 21.11.2008 02:42:10 50  0   0   0   39,99 € http://i7.ebayimg.com/02/i/001/16/0d/68af_1.JPG?set_id=800005007    0   2   8.10.2008 13:40:20  8.10.2008 13:40:20  80587   0   <table bordercolordark="#999900" bordercolorlight="#666666" bgcolor="#ffffff" border="10" bordercolor="#666666" width="100%">
<tbody>
<tr>
<td><b><font color="#990000" face="arial" size="5"><br>
</font></b><blockquote>
<div align="center"><b><font color="#990000" face="arial" size="5"><font color="#ff0000">

</font></font></b><h1><font size="6"><b><font color="#990000" face="arial"><font color="#ff0000">100% ORGINAL MARKENWARE AUS DEN USA</font></font></b></font></h1>
<p style="color: rgb(0, 0, 0);"><font size="6"><b><font face="arial">ED HARDY</font></b></font></p><p style="color: rgb(0, 0, 0);"><b><font face="arial" size="5">CAP<br></font></b></p></div><div style="text-align: center;"><font size="5"><br><b><font color="#990000" face="arial"><font color="#ff0000"><b><font color="black" face="arial">Style: TRUE ROSE<br></font></b></font></font></b><b><font color="#990000" face="arial"><font color="#ff0000"><b><font color="black" face="arial"><br></font></b></font></font></b></font><font size="5"><b><font color="#990000" face="arial"><font color="#ff0000"><b><font color="black" face="arial">Die Kollektion von der trend Marke Ed Hardy kreiert sportlich, hipe Mode die bei den Stars in Hollywood der absolute Renner ist. In diesem super Trucker Cap fallen Sie auf !!&nbsp; </font></b></font></font></b></font><font size="5"><b><font color="#990000" face="arial"><font color="#ff0000"><b><font color="black" face="arial">Dieses Cap ist nagelneu mit Etikett und</font></b></font></font></b></font><font size="5"><b><font color="#990000" face="arial"><font color="#ff0000"><b><font color="black" face="arial"> 100% orginal.</font></b></font></font></b></font><font size="5"><br><b><font color="#990000" face="arial"><font color="#ff0000"><b><font color="black" face="arial"><br><br></font></b></font></font></b><br><b><font color="#990000" face="arial"><font color="#ff0000"><b><font color="black" face="arial">Wir tragen die ebay Kosten und der Kaeufer die Versandkosten.</font></b></font></font></b><br><b><font color="#990000" face="arial"><font color="#ff0000"><b><font color="black" face="arial">Versandkosten nach Europa sind folgend:</font></b></font></font></b><br><b><font color="#990000" face="arial"><font color="#ff0000"><b><font color="black" face="arial">fuer unversicherten Versand 6,00 Euro<br></font></b></font></font></b></font><font size="5"><b><font color="#990000" face="arial"><font color="#ff0000"><b><font color="black" face="arial">fuer versicherten Versand 12,00 Euro</font></b></font></font></b></font><br>
<font size="5"><span style="font-family: arial;"><span style="font-weight: bold;">Bei paypal Bezahlungen akzeptieren wir nur noch versicherten Versand!</span></span></font><br><font size="5"><b><font color="#990000" face="arial"><font color="#ff0000"><b><font color="black" face="arial">Auf Ihren Wunsch versenden wir die Ware auch versichert. Ansonsten trägt das Risiko beim Versand der Käufer. </font></b></font></font></b><br><b><font color="#990000" face="arial"><font color="#ff0000"><b><font color="black" face="arial">Wir bitten um Ihre Zahlung innerhalb 10 Tage nach Auktionsende.</font></b></font></font></b><br></font></div><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><b><font color="black" face="arial" size="3"><br>
</font></b></font></font></b><div align="center"><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><b><font color="black" face="arial" size="3"><font color="#ff0000">
</font></font></b></font></font></b><marquee width="70%" bgcolor="#ffffff">
<h2><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><b><font color="black" face="arial" size="3"><font color="#ff0000">Schauen Sie unbedingt bei unserem Shop "cheap-and-hip" vorbei!!!</font></font></b></font></font></b></h2></marquee><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><br><b><font color="black" face="arial" size="5"><br>
</font></b></font></font></font></b><blockquote>
<div align="center">
<center>
<h1><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><b><font color="black" face="arial" size="5">Abwicklung Ihres Einkaufs bei uns</font></b></font></font></font></b></h1><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><b><font color="black" face="arial" size="5"><br></font></b></font></font></font></b></center><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><br></font></font></font></b></div><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><font color="black" face="arial" size="3">Jeder Käufer erhält innerhalb von 24 Stunden nach Auktionsende eine e-mail mit allen für die Kaufabwicklung relevanten Informationen. Sollten Sie nach 24 Stunden noch keine e-mail erhalten haben, setzen Sie sich bitte mit uns per e-mail in Verbindung. <br><br>
</font></font></font></font></b><h2><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><font color="black" face="arial" size="3">Kauf von mehreren Artikeln</font></font></font></font></b></h2><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><font color="black" face="arial" size="3">Da das Porto aus den USA nach Gewicht berechnet wird, werden die Versandkosten beim Einkauf von mehreren Artikeln neu berechnet. Bitte teilen Sie uns per e-mail mit, wenn Sie mehrere Artikel ersteigert/gekauft haben, bzw. noch ersteigern/kaufen moechten, Sie erhalten von uns dann die kompletten Versandkosten. Die Kosten fuer den Versand werden von dem Kaeufer getragen. Die Versanddauer betraegt bei Luftversand zirka 5-10 Tage.<br><br>
</font></font></font></font></b><h2><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><font color="black" face="arial" size="3">Versand</font></font></font></font></b></h2><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><font color="black" face="arial" size="3">Der Versand erfolgt innerhalb von 2-3 Werktagen nach Zahlungseingang (Gutschrift der Überweisung auf unserem Konto bei der Postbank oder bei paypal). Bitte beachten Sie, dass es je nach Kreditinstitut 2-4 Werktage dauern kann, bis Ihre Überweisung auf unserem Konto gutgeschrieben wird. Kreditkarten Gutbuchung ueber paypal erfolgt noch am gleichen Tag.<br>Als Betreff einer Ueberweisung muß unbedingt die eBay-Artikelnummer der Auktion angegeben werden. Ohne diese Information ist eine Zuordnung der Überweisung leider fast nicht möglich! <br>ZOLL: Bitte beachten Sie das Zollgebuehren anfallen koennen auch wenn es nur selten vorkommt sollten Sie sich mit den Einfuhrbestimmungen Ihres Landes vertraut machen. <br></font></font></font></font></b><br><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><font color="black" face="arial" size="3"><br>
</font></font></font></font></b><h2><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><font color="black" face="arial" size="3">Umtausch</font></font></font></font></b></h2><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><font color="black" face="arial" size="3">Wir tauschen gerne Ihren Artikel um sofern Sie die Ware innerhalb von 14 Tagen nach erhalt den Artikel uns wieder zuschicken. Wir nehmen nur ungetragene Ware zurueck und alle Etiketten muessen noch an dem Artikel befestigt sein<br><br>
</font></font></font></font></b><h2><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><font color="black" face="arial" size="3">Falls Sie Reklamationen haben</font></font></font></font></b></h2><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><font color="black" face="arial" size="3">Wir bitten bei Beanstandungen der Ware sich erst mit uns in Verbindung zu setzten. Wir pruefen unsere Ware immer auf Defekte aber es kann vorkommen das uns etwas entgeht und bevor Sie eine "negative Bewertung" abgeben moechten wir die Chance bekommen Sie zufrieden zustellen. 
</font></font></font></font></b><p><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><font color="black" face="arial" size="3"><b><font color="#ff0000" face="arial" size="5">
</font></b></font></font></font></font></b></p><center><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><font color="black" face="arial" size="3"><b><font color="#ff0000" face="arial" size="5">Vielen Dank fuer Ihr Intresse!</font></b></font></font></font></font></b></center><p><b><font color="#990000" face="arial" size="5"><font color="#ff0000"><font color="black" face="arial" size="3"><font color="black" face="arial" size="3"><b><font color="#ff0000" face="arial" size="5"><br></font></b></font></font></font></font></b></p></blockquote></div></blockquote></td></tr></tbody></table><br><br>   1   Baltimore   1   0   1   0   0   0,10 €  0,00 €  0,00 €  0   0   1   77

Ich möchte wissen, ob es eine einfache Möglichkeit, mit sed oder awk ist die HTML-Tags mit Ausnahme von <p>-Tags zu entfernen. Ich möchte auch wissen, ob es für einen beliebigen Link HTML möglich ist, eine Flash-SWF-Datei eingebettet ist, automatisch den HTML-Code zu ändern, um diese Datei zu verbinden.

Also, im Grunde, einen Code wie

ersetzen
<embed src="http://backend.supremeauction.com/app/gallery/loader.swf">

mit so etwas wie <a href="http://backend.supremeauction.com/app/gallery/loader.swf">Click here for external description</a> und entfernen Sie dann alle anderen HTML-Tags mit Ausnahme von <p>

Ist das überhaupt möglich?

War es hilfreich?

Lösung

Hier ist das Perl für die Nicht-p-Tags zu entfernen - es wird allerdings nicht

über die Leitungen arbeitet
perl -pe 's/<\/?(?>[^p]|p\w+)[^>]*>//ig'

Das wird es an der Standardausgabe ausdrucken und Sie können es von dort umleiten.

Wenn Sie nur einen Link haben, könnten Sie dies tun:

perl -pe 's/<embed\s+src="(.*?\.swf)"\/?>/<a href="$1">Click here for external description<\/a>/i;s/<\/?(?>[^ap]|[ap]\w+)[^>]*>//ig'

Andere Tipps

Ich kam mit dieser, für sed:

sed -e 's/[<][/][^Pp][^>]*[>]//g' -e 's/[<][^/Pp][^>]*[>]//g' file

Verwenden Sie xmlstarlet die Tags, um herauszufiltern Sie wollen; wie es XML-Syntax kennt (die als wesentlich komplexer ist korrekt in einem regulären Ausdruck erfaßt werden), ist es zum Scheitern in der Ecke Fällen wie verschachtelte Tags nicht anfällig und kann korrekt innerhalb von Elementen &amp; und kin dekodieren. Die select subcommand wird XPath nehmen, so ein trivialer Ausdruck A Elemente zu finden, was Sie wollen.

Die format subcommand hat eine Option HTML als Eingabe zu nehmen, so dass Sie einen anfänglichen Verarbeitungsstufe mit dem tun, wenn Ihre Inhalte nicht gültiges XHTML ist.

Wenn Sie dies in Perl tun wollen, gibt es viele HTML-Dienstprogramm-Module, die Sie transformieren und Filter HTML helfen können. Andere Sprachen haben wahrscheinlich ähnliche Bibliotheken. Siehe zum Beispiel HTML :: Parser . Sie definieren Handler für die Teile, die Sie beeinflussen möchten. Sobald Sie die Kontrolle dieses Teils erhalten, können Sie sie verändern und entscheiden, wie es ausgegeben wird.

Wenn Sie sehr regelmäßige Ausgabe haben, die von einem anderen Programm erzeugt wird, könnten Sie in der Lage sein, mit einem regex wegzukommen. Jedes Mal, wenn ich getan habe, dass die Regex ziemlich böse zu bekommen beginnen, als ich die Sonderfälle und Ausnahmen finden.

Es klingt wie Sie obwohl dieses Problem umdrehen können können. Versuchen Sie wirklich nur URLs und Link zu ihnen zu extrahieren? Statt mit den Parser von Unordnung, können Sie einfach die URLs herausziehen und schreiben ein völlig neues Dokument, ohne sich um die alte Sorge? Oder vielleicht nur vollständig einen Bereich mit dem größeren Dokument ersetzen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top