Grep neden \e[Krenkli çı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: cbancak renkli ekran şunları gösterir:c
Temel kodlanmış metin: echo -e 'ab\r\033[01;31m\033[Kc\033[m\033[K'
Ancak, \e[Kkodlar olmadan, echo -e 'ab\r\033[01;31mc\033[m'beklendiği gibi çalışır!
Grep'in bu \e[Kkodları 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.