sed
não trata \e
como uma sequência de escape. Com o GNU sed e a maioria das outras implementações de sed lá fora, \e
em um texto de substituição s
significa apenas e
. As únicas escapes de barra invertida que podem ser portadas em s
texto de substituição são \
para significar uma barra invertida, \&
significa literal &
, \/
(onde /
é o caractere delimitador) para um literal /
e a
para referências anteriores. O GNU sed e o BusyBox (mas não, por exemplo, o OpenBSD sed) adicionam
\n
para uma nova linha. Assim, a saída do seu comando sed tem um literal e
.
No bash, você pode facilmente colocar um caractere de escape literal em suas variáveis desde o início. \e
é uma das sequências de escape reconhecidas pela construção $'…'
.
ColorOff=$'\e[0m' # Text Reset
BWhite=$'\e[1;37m' # Bold White