Grep neden \e[K
renkli çıktısına ANSI kodu ekliyor ? Bunun amacını göremiyorum, ama açıkça geliştiriciler görebiliyor. "Geçerli imleç konumundan satır sonuna kadar satırı temizle" için kullanılan bir ANSI / VT100 Terminal kodudur .
Saçak durumunda grep, terminal ekranından metnin "kaybolmasına" neden olabilir. Örneğin:
echo -e "ab\rc"
echo -e "ab\rc" |grep --color=always "c"
Basit yankı şunları görüntüler: cb
ancak renkli ekran şunları gösterir:c
Temel kodlanmış metin: echo -e 'ab\r\033[01;31m\033[Kc\033[m\033[K'
Ancak, \e[K
kodlar olmadan, echo -e 'ab\r\033[01;31mc\033[m'
beklendiği gibi çalışır!
Grep'in bu \e[K
kodları dahil etmesinin nedeni nedir ? Bir aktarma için izin vermek için bir komut dosyası yazıyorum ikinci colorizing geçişte olduğu gibi: c=--color=always; ls $c /bin/gzip | grep $c 'z'
. bu yüzden grep'in neden kullandığını anlamam gerekiyor \e[K
.