Schrift
[thread]6254[/thread]

ANSI Escape Sequenzen (Farben) entfernen

Leser: 1


<< >> 3 Einträge, 1 Seite
quetzalcoatl
 2004-05-13 12:31
#82340 #82340
User since
2004-04-01
51 Artikel
BenutzerIn
[default_avatar]
Ok, hat sich erledingt.

Lösung:
Code: (dl )
perl -pe 's/\\033\[[0-9];[0-9][0-9]*m//g' boot.log |perl -pe 's/\\033\[71G//g' -


Und, um es gleich zu ändern:
Code: (dl )
perl -pi -e 's/\\033\[[0-9];[0-9][0-9]*m//g' boot.log && perl -pi -e 's/\\033\[71G//g' boot.log



Hallo,

nachdem ja mein eigener bootlogd gescheitert ist - hab ich mir nun den bootlogd vom sysvinit Projekt geholt.

Leider kann der überhaupt nix mit den Shell Farben anfangen.
Nun meine Frage: wie kann ich elegant mit RegEx diese ANSI Sequenzen entfernen.

Soweit ist meine (wirklich üble) Lösung:
Code: (dl )
--

Es muss doch dafür eine elegantere Lösung geben.
Weiß jemand eine?

Gruss,
quetzal

PS: bootlogd ist nicht schlecht - hab vorher meine inittab angepasst (damit ein auto-login funktioniert), beim starten hat er dann einfach nicht weiter gemacht - keine Fehlermeldung o.ä. - nachdem ich die Änderrung wieder rückgänig gemacht hatte - hab ich im boot.log den Fehler gesehen:
Code: (dl )
1
2
3
4
Thu May 13 10:06:51 2004: INIT: cannot execute "/sbin/login"
Thu May 13 10:06:51 2004: INIT: cannot execute "/sbin/login"
Thu May 13 10:06:51 2004: INIT: cannot execute "/sbin/login"
Thu May 13 10:06:51 2004: INIT: cannot execute "/sbin/login"
\n\n

<!--EDIT|quetzalcoatl|1084438938-->
betterworld
 2004-05-14 01:15
#82341 #82341
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
[quote=quetzalcoatl,13.05.2004, 10:31]Lösung:
Code: (dl )
perl -pe 's/\\033\[[0-9];[0-9][0-9]*m//g' boot.log |perl -pe 's/\\033\[71G//g' -
[/quote]
Damit faehrst Du nicht ganz sicher. Ansi-Farbsequenzen muessen kein Semikolon enthalten. Besser waere:
Code: (dl )
/\033\[(?:[0-9]+;?)*m/

Ich bin mir aber auch nicht ganz sicher, ob das alle moeglichen Sequenzen abdeckt.
Warum brauchst Du eigentlich 2 Backslashes vor dem 033?\n\n

<!--EDIT|betterworld|1084483004-->
quetzalcoatl
 2004-05-14 20:19
#82342 #82342
User since
2004-04-01
51 Artikel
BenutzerIn
[default_avatar]
Quote
Warum brauchst Du eigentlich 2 Backslashes vor dem 033?

weil das ganze ja "\033[1;34m.." heißt, wenn ich nun "\033" nicht mit einem Backslash schütze, bekomm ich garnichts zu sehen. Hab's zwei mal getestet (da mich jemand anderes auch schon darauf angesprochen hat) - und ich musste es immer schützen.

Danke für den regex hinweiß - werde ich bei nächster gelegenheit ausprobieren.

Gruss,
quetzal
<< >> 3 Einträge, 1 Seite



View all threads created 2004-05-13 12:31.