Hiển thị \ n ký tự dưới dạng dòng mới khi sử dụng đuôi?


17

Tôi có một tập tin mà tôi đang cố đọc bằng cách sử dụng tail -f. Tôi đã tự hỏi nếu có một cách để đầu ra thiết bị đầu cuối ngắt dòng thực tế thay vì ký tự \ n.


1
Theo quy định, đuôi -f sẽ hiển thị ngắt dòng khi ngắt dòng. Bạn có thể gặp sự cố với cài đặt bảng điều khiển của mình, nếu đó là những gì bạn đang thấy.
Jon Lasser

1
Hoặc anh ta đang theo dõi một tập tin thực sự có chữ \ n trong đó. Có thể ngắt dòng đã được chuyển đổi thành "\ n" theo nghĩa đen trước khi được ghi vào tệp.
Josh

Câu trả lời:


25
tail -f file | sed 's/\\n/\n/g'

2
Tôi muốn nói thêm rằng tôi thấy rằng tôi cần phải thực sự nhập một ngắt dòng trong lệnh sed của mình sau dấu gạch chéo ngược để thực hiện công việc này, như vậy:~$ tail -f /var/log/apache2/error_log | sed 's/\\n/\ > /g'
Jon z

Có ai biết một cách để đạt được điều tương tự cho đa nhiệm không? Đây là một câu hỏi: unix.stackexchange.com/questions/239774/ trên
Fraxture

Tôi không thể làm điều đó để hoạt động như một bí danh trong .bashrc của mình
Kdansky 8/12/2015

1
@Kdansky: Bạn đã không chỉ ra cách bạn xác định bí danh hoặc loại vấn đề bạn gặp phải để tôi chỉ có thể đoán. Một vấn đề bạn có thể gặp phải là trích dẫn. Một dấu gạch chéo ngược có thể giúp : alias forward="tail -f file | sed 's/\\\n/\n/g'". Nếu bạn muốn có thể chỉ định tên tệp làm đối số, bạn nên sử dụng hàm thay vì bí danh:forward () { tail -f "$@" | sed 's/\\n/\n/g'; }
Tạm dừng cho đến khi có thông báo mới.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.