Я использую этот старый скрипт, имена hilite.pl, взятые из Интернета, уже с линией «неизвестного автора»!
#!/usr/bin/perl -w
### Usage: hilite <ansi command> <target string>
### Purpose: Will read text from standard input and perform specified highlighting
### command before displaying text to standard output.
### License: GNU GPL
# unknown author
$|=1; # don't buffer i/o
$command = "$ARGV[0]";
$target = "$ARGV[1]";
$color = "\e[" . $command . "m";
$end = "\e[0m";
while(<STDIN>) {
s/($target)/$color$1$end/;
print $_;
}
Тогда я могу использовать его в трубах, чтобы «hilite» log output или другие вещи, используя regexp / PCRE:
echo 'hello color world!!' | hilite.pl 34 "[Hh]el[^ ]*" | hilite.pl 43 .orld | hilite.pl 32 "\scolor\s"
Это будет рисовать привет в синем, цвет в зеленом и мире на желтом фоне
Вы можете увидеть список цветов с помощью (вы можете расширить выражение bash до {01..255}, если хотите):
for i in {01..10} {30..49} {90..110} ; do echo $i | hilite.pl $i $i ; done