Tại sao grep thêm mã ANSI \e[K
vào đầu ra màu của nó? Tôi không thể thấy quan điểm của nó, nhưng rõ ràng các nhà phát triển có thể. Đó là mã Terminal ANSI / VT100 được sử dụng để "Xóa dòng từ vị trí con trỏ hiện tại đến cuối dòng" .
Trong trường hợp rìa, grep có thể khiến văn bản "biến mất" khỏi màn hình thiết bị đầu cuối. Ví dụ:
echo -e "ab\rc"
echo -e "ab\rc" |grep --color=always "c"
Hiển thị tiếng vang đơn giản : cb
, nhưng màn hình màu hiển thị:c
Văn bản được mã hóa cơ bản là: echo -e 'ab\r\033[01;31m\033[Kc\033[m\033[K'
Tuy nhiên, không có \e[K
mã, echo -e 'ab\r\033[01;31mc\033[m'
hoạt động như mong đợi!
Lý do cho việc bao gồm các \e[K
mã này của grep là gì . Tôi đang viết một kịch bản để cho phép phủ một lớp màu thứ hai , như trong : c=--color=always; ls $c /bin/gzip | grep $c 'z'
. vì vậy tôi cần hiểu tại sao grep sử dụng \e[K
.