Pourquoi grep ajoute-t-il du code ANSI \e[K
à sa sortie colorée? Je ne vois pas l'intérêt de cela, mais évidemment les développeurs le peuvent. Il s'agit d'un code de terminal ANSI / VT100 qui est utilisé pour "Effacer la ligne de la position actuelle du curseur jusqu'à la fin de la ligne" .
Dans un cas marginal, grep peut faire disparaître le texte de l'affichage du terminal. Par exemple:
echo -e "ab\rc"
echo -e "ab\rc" |grep --color=always "c"
L' écho simple affiche :,cb
mais l' affichage colorisé montre:c
Le texte codé sous-jacent est: echo -e 'ab\r\033[01;31m\033[Kc\033[m\033[K'
Cependant, sans les \e[K
codes, echo -e 'ab\r\033[01;31mc\033[m'
fonctionne comme prévu!
Quelle est la raison pour laquelle grep a inclus ces \e[K
codes. J'écris un script pour la superposition d'un second passage de colorisation , comme dans: c=--color=always; ls $c /bin/gzip | grep $c 'z'
. j'ai donc besoin de comprendre pourquoi grep utilise \e[K
.