Kommandozeilenmagie gesucht: tr, sed o.ä. für "Inverted Text"

05/09/2014 - 11:00 von Stefan Baur | Report spam
Hi,

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.

Weiß jemand die richtige Kombination bzw. einen anderen Weg, das Zeichen
in der Ausgabe gehighlightet zu bekommen?

./programm ist ein Perl-Programm, die Ausgabe erfolgt in der Zeile, die
so lautet:

print join "", map { join "", @$_ } @$arrayref;

Wenn jemand weiß, wie, wàre also auch eine Anpassung im Perl-Code möglich.

Gruß
Stefan


Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-REQUEST@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listmaster@lists.debian.org (engl)
Archive: https://lists.debian.org/54097B16.4070208@stefanbaur.de
 

Lesen sie die antworten

#1 Martin Klaiber
05/09/2014 - 11:30 | Warnen spam
Stefan Baur wrote:

Weiß jemand die richtige Kombination bzw. einen anderen Weg, das Zeichen
in der Ausgabe gehighlightet zu bekommen?



Ich benutze für so etwas tput. Teste mal:

echo -n "Normal " ; tput bold ; echo -n "Bold" ; tput sgr0 ; echo " Wieder normal"

Ach, ich sehe gerade, Du wolltest reverse, dann einfach "tput rev"
statt "tput bold" verwenden. Ebenso kannst Du Vorder- und Hintergrund
einfàrben.

Die man-page ist leider etwas dünn gehalten, im web gibt es mehr
Informationen, z.B. in der englischsprachigen Wikipedia.

Gruß, Martin


Zum AUSTRAGEN schicken Sie eine Mail an
mit dem Subject "unsubscribe". Probleme? Mail an (engl)
Archive: https://lists.debian.org/

Ähnliche fragen