[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: