Mengapa grep menambahkan kode ANSI \e[K
ke keluaran berwarna? Saya tidak bisa mengerti intinya, tetapi jelas para pengembang bisa. Ini adalah kode Terminal ANSI / VT100 yang digunakan untuk "Hapus baris dari posisi kursor saat ini ke akhir baris" .
Dalam kasus pinggiran, grep dapat menyebabkan teks "menghilang" dari tampilan terminal. Sebagai contoh:
echo -e "ab\rc"
echo -e "ab\rc" |grep --color=always "c"
Sederhana gema menampilkan: cb
, tapi berwarna display menunjukkan:c
Teks disandikan yang mendasarinya adalah: echo -e 'ab\r\033[01;31m\033[Kc\033[m\033[K'
Namun, tanpa \e[K
kode, echo -e 'ab\r\033[01;31mc\033[m'
berfungsi seperti yang diharapkan!
Apa alasan grep memasukkan \e[K
kode - kode ini . Saya menulis naskah untuk memungkinkan overlay dari colorizing kedua lulus , seperti di: c=--color=always; ls $c /bin/gzip | grep $c 'z'
. jadi saya perlu mengerti mengapa grep menggunakan \e[K
.