1
grep --color เพิ่มรหัส ANSI ESC [K - สิ่งนี้สามารถเปลี่ยนข้อความที่แสดง
ทำไม grep จึงเพิ่มรหัส ANSI \e[Kลงในเอาท์พุตสี ฉันไม่เห็นจุดของมัน แต่เห็นได้ชัดว่านักพัฒนาสามารถ มันเป็นรหัสมาตรฐาน ANSI / VT100 ร์มินัลที่ใช้ในการ"ล้างเส้นจากตำแหน่งเคอร์เซอร์ปัจจุบันที่จะสิ้นสุดของเส้น" ในกรณีที่มีขอบ grep สามารถทำให้ข้อความ "หายไป" จากจอแสดงผลขั้ว ตัวอย่างเช่น: echo -e "ab\rc" echo -e "ab\rc" |grep --color=always "c" echoง่ายแสดง: cbแต่หน้าจอcolorizedแสดง:c ข้อความที่เข้ารหัสที่สำคัญคือ: echo -e 'ab\r\033[01;31m\033[Kc\033[m\033[K' อย่างไรก็ตามหากไม่มี\e[Kรหัสจะ echo -e 'ab\r\033[01;31mc\033[m'ทำงานได้ตามที่คาดไว้! อะไรคือสาเหตุของการรวม\e[Kรหัสเหล่านี้ของ grep ฉันเขียนสคริปต์เพื่ออนุญาตให้มีการซ้อนทับของสองผ่านการระบายสีc=--color=always; ls $c /bin/gzip | grep $c 'z'เช่น: ดังนั้นผมจึงจำเป็นต้องเข้าใจ\e[Kความหมายว่าทำไม grep