(gelöst) Was soll ein \E im logfile bewirken?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
medias
Beiträge: 90
Registriert: 18.05.2014 11:21:43

(gelöst) Was soll ein \E im logfile bewirken?

Beitrag von medias » 25.01.2015 19:44:39

In einem #!/bin/bash script steht das
export STATUS_UP=`echo -e "\E[32m[ RUNNING ]\E[0m"`
export STATUS_DOWN=`echo -e "\E[31m[ DOWN ]\E[0m"`
Das soll etwas in dem logfile erzeugen. Im bluefish ergibt das [32m[ RUNNING ][0m in der betreffenden Zeile. In den Firefox geladen sieht es genauso aus. Was anderes zur Darstellung habe ich nicht. Laut http://misc.flogisoft.com/bash/tip_colo ... formatting ist das ein ESC Steuerzeichen.

1. Was soll das bewirken?
2. Da ich das logfile weiter auswerten möchte, muss das Zeichen raus oder ersetzt werden. Womit?
Zuletzt geändert von medias am 26.01.2015 11:24:16, insgesamt 1-mal geändert.

JuergenPB

Re: Was soll ein \E bewirken?

Beitrag von JuergenPB » 25.01.2015 20:14:38

Mach mal ein Terminalfenster auf und gib ein:

Code: Alles auswählen

echo -e "\E[32m[ RUNNING ]\E[0m"
und

Code: Alles auswählen

echo -e "\E[31m[ DOWN ]\E[0m"
Dann siehst Du, daß die Ausgabe einmal in rot erscheint und einmal in grün.

Benutzeravatar
Meillo
Moderator
Beiträge: 9235
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Was soll ein \E bewirken?

Beitrag von Meillo » 25.01.2015 20:16:55

medias hat geschrieben: 1. Was soll das bewirken?
Diese Escape-Sequenzen schalten bei deinem Terminal die Farben um.

Wie man die weg filtert weiss ich gerade nicht. EDIT: Ah, doch:

Code: Alles auswählen

sed 's/\x1b[^m]*m//g'
(Das scheint aber unportabel zu sein. Portabel geht's wenn man das Escape (`\x1b') literal eingibt, mit `^V^['.)
Use ed once in a while!

medias
Beiträge: 90
Registriert: 18.05.2014 11:21:43

Re: Was soll ein \E bewirken?

Beitrag von medias » 26.01.2015 11:23:40

Meillo hat geschrieben:
medias hat geschrieben: 1. Was soll das bewirken?
Diese Escape-Sequenzen schalten bei deinem Terminal die Farben um.

Wie man die weg filtert weiss ich gerade nicht. EDIT: Ah, doch:

Code: Alles auswählen

sed 's/\x1b[^m]*m//g'
(Das scheint aber unportabel zu sein. Portabel geht's wenn man das Escape (`\x1b') literal eingibt, mit `^V^['.)
Ja, danke. Ich habe die einfach von Hand im script gelöscht. Das mit der farblichen Darstellung am Bildschirm habe ich leider erst nach meinem Post hier im df gesehen. Mir ist nur nicht klar was diese Zeichen in einem logfile zu suchen haben. :)

Benutzeravatar
Meillo
Moderator
Beiträge: 9235
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Was soll ein \E bewirken?

Beitrag von Meillo » 26.01.2015 11:32:11

medias hat geschrieben:Mir ist nur nicht klar was diese Zeichen in einem logfile zu suchen haben. :)
Mir auch nicht!
Use ed once in a while!

Antworten