Empirius Tech Blog


HTML-Export von SAP-Logs lesbar machen / reduzieren / eindampfen

Die HTML-Exporte von SAP-Log-Ausgaben sind oft recht umfangreich. Viele Browser haben mit der Darstellung Mühe oder versagen völlig. Ein Weg, sich den Inhalt trotzdem ansehen zu können, ist das Reduzieren auf das Wesentliche...


Das Wesentliche - brauchbare SAP-HTML-Logfiles

Die HTML-Exporte von SAP-Log-Ausgaben sind oft recht umfangreich. Viele Browser haben mit der Darstellung Mühe oder versagen völlig. Ein Weg, sich den Inhalt trotzdem ansehen zu können, ist das Reduzieren auf das Wesentliche...


Das Problem

Neulich hat ein Kunde ein Archiv geschickt, in welchem die Ausgabe(Log) von Export und Import als HTML-File enthalten war. Gerade weil das Import-Log gute 200MB groß war, ist eine simple Darstellung im Browser der eigenen Wahl eher unpraktisch bis unmöglich.

 

Eindampfen

Um sich den Inhalt zu Gemüte führen zu können, ist ein Eindampfen auf ein deutlich kleineres Textfile das Mittel der Wahl. Hier hilft ein schicker Perl-Einzeiler:

 

perl -ibak -pe"s/&nbsp;/ /g; s/\s+/ /g; s/<br>/<br>\n/g; s/<[^>]+>//g" logfilename

 

Dahinter verbirgt sich nichts anderes als ein Loop über alle Zeilen des Logs (ihr werdets nicht glauben: eine(!) in diesem Fall), der folgendes macht:

  1. alle HTML-Entities &nbsp; durch Leerzeichen ersetzen
  2. alle aufeinanderfolgenden Whitespaces (Tabs, Leerzeichen, usw.) durch ein einzelnes Leerzeichen ersetzen
  3. nach HTML-Linebreaks (<br>) ein Text-Linebreak einfügen
  4. alle HTML-Tags entfernen

Jetzt sind im Log noch einige numerische HTML-Entities enthalten, aber diese stören kaum. Zur Not mittels

 

perl -ibak -pe"s/&#(\d+);/chr($1)/eg" logfilename

 

durch die zugehörigen Zeichen ersetzen.

Wen die | am Anfang und Ende jeder Zeile stören, der kann sie dann auch mit

 

perl -ibak -pe"s/^ \| //; s/ *\|$//" logfilename

 

entfernen.

 

Alternative mit Line-Art

perl -ibak -pe"s/&nbsp;/ /g;s/<br>/<br>\n/g;s/<[^>]+>//g" logfilename

perl -ibak -pe"s/&#(\d+);/chr($1)/eg" logfilename

perl -ibak -pe"s/^\s+([|-])/$1/" logfilename

 

Hier werden aufeinanderfolgende Whitspaces und auch die Text-Rahmen so belassen, daß eine monospaced-Ausgabe zu bewundern ist, welche ziemlich genau der Anzeige SAP-intern entspricht.

 

Disclaimer: Die Beispiele sind alle in Windoof-Syntax - für Unix sollten statt doppelter einfache Anführungszeichen benutzt werden. Also aufs korrekte Quoting achten!


Tech Blog <- Zurück


Kommentare (0)


Kommentar hinzufügen:





Erlaubte Tags: <b><i><br>Kommentar hinzufügen: