Re: Kommandozeilenmagie gesucht: tr, sed o.ä. für "Inverted Text"
Hallo Stefan!
Stefan Baur schrieb am Freitag, den 05. September 2014:
> ich habe ein Programm, das mir als Ausgabe ein bestimmtes Zeichen
> liefert. Im folgenden Beispiel sei es "X".
>
> Dieses Zeichen möchte ich in der Bildschirmausgabe "highlighten".
> So, wie das bei
> echo -e "Normal Text \e[7mInverted Text\e[0m Normal Text"
> funktioniert.
>
> ./programm | tr 'X' '\e[7mX\e[0m'
>
> funktioniert leider genausowenig wie
>
> ./programm | sed 's/X/\e[7mX\e[0m/g'
>
> Ich habe schon verschiedene Kombinationen von \, \\, \\\ etc. durch,
> zusammen mit ' vs. ". Klappt alles irgendwie nicht.
Ja, du willst ja auch nicht wirklich ein \e haben, sondern ein Escape.
Das geht z.B. so:
./program | sed 's/x/'$'\e'"[7mX"$'\e'"[0m/g"
oder so:
esc=$'\e'
./progrem | sed "s/X/${esc}[7mX${esc}[0m/g"
> Weiß jemand die richtige Kombination bzw. einen anderen Weg, das Zeichen
> in der Ausgabe gehighlightet zu bekommen?
In Perl direkt ist es aber schöner. Dort kannst Du z.B. mit
Term::ANSIColor arbeiten.
Grüße
Christian
--
Des Schweines Ende ist der Wurst Anfang.
-- Wilhelm Busch
Reply to: