Steuerzeichen entfernen

buiters

Grünschnabel
Hallo

ich habe ein Problem mit der Ausgabe eines Perl Scriptes. Die Ausgabe wird in einem Array gespeichert. Wenn ich das Array während der Laufzeit ausgeben lassen sieht das folgendermassen aus:

Connection to Server local [ OK ]
Stopping Guest..... [FAIL]

Wenn ich das Array dann noch in eine Datei schreibe sieht das dann so aus:

Connection to Server local ^[[32m[ OK ]^[[0m
Stopping Guest..... ^[[31m[FAIL]^[[0m

beides im Betriebssystem Redhat (bzw die VMWare ESX Host Redhat Variante)

wenn ich das Array dann zu einem Windows XP maile bzw die Datei kopiere erscheint es folgendermassen:

Connection to Server local [ OK ]
Stopping Guest..... [FAIL]
Okey wie ich sehe wird es hier auch nicht dargestellt. Unter Windows wird ^[ durch ein Quadrat ersetzt. Beim Beitrag erstellen ist das zu sehen beim erstellten Beitrag dann nicht mehr.

in einem Hex Editor unter Windows

Connection to Server local .[32m[ OK ].[0m

Da der Punkt den ASCII Wert 1B also des Escape Zeichen ist vermute ich das dieses dort eingefügt wird. Dazu zwei Fragen:

Warum werden diese Zeichen eingefügt?
Wie bekomme ich die dort raus?

Die Zeichenfolge [32m und [0m kann ich durch einen Regulären Ausdruck einfach suchen und ersetzen. Ich habe aber nichts gefunden wie ich das Escape Zeichen finden kann.

Im vorraus schonmal Danke.

Gruß
 
Zurück