Vì mục đích hoàn chỉnh, tệp chứa tất cả các trình tự thoát này được tạo bởi các daemon bootlogd (gói khởi động trong gia đình debian) chụp tất cả các tin nhắn được tô màu được gửi tới bàn điều khiển trong khi khởi động. Trên giao diện điều khiển, các thư này lần đầu tiên được hiển thị như dòng sau:
[....] Starting periodic command scheduler: cron
sau đó, khi dịch vụ hoặc lệnh được thực thi, một dãy thoát được gửi đến giao diện điều khiển để định vị con trỏ ở đầu dòng và in ok, thất bại, thông tin, cảnh báo vv ...
[ ok ] Starting periodic command scheduler: cron.
Tất cả những thông điệp được chụp bởi các bootlogd daemon và ghi vào một tập tin với tất cả các trình tự thoát của nó bao gồm cả tái định vị một. Không có vấn đề ngoại trừ việc ^[
phải được thay thế bằng octal 033
để tệp được hiển thị chính xác. Nhưng, bởi vì có một bắt, daemon cũng thêm một dấu ngày ở phía trước của tin nhắn mà không thay đổi tọa độ của trình tự định vị con trỏ. Do đó, các thông báo ok, không thành công v.v ... sẽ ghi đè lên một phần của dấu ngày. Không hay.
Fri May 25 17:13:01 2012: [....] Starting periodic command scheduler: cron
becomes...
[ ok ay 25 17:13:01 2012: [....] Starting periodic command scheduler: cron.
Giải pháp là thay đổi trình tự định vị con trỏ đó. Bằng cách thử và lỗi, tôi thấy rằng chuỗi là ^[1G
. Lệnh sed sau cuối cùng hoàn thành công việc:
sed 's/\^\[/\o33/g;s/\[1G\[/\[27G\[/' /var/log/boot
các bootlogd daemon nên thanh trừng tất cả các dãy thoát trước khi gửi các thông điệp giao diện điều khiển để các tập tin. Chúng tôi có thể gọi đây là lỗi không?
này "lỗi" cũng có thể có mặt trong tất cả những người thừa kế Debian như Ubuntu, Mint vv ...
Có 'mèo' không hoạt động không? –
mèo chỉ hoạt động sau khi tất cả '^ [' được thay thế bằng số bát phân tương đương '033' xem câu trả lời của riêng tôi bên dưới. – ripat