Kết thúc đuôi -f sau khi in n dòng


10

Tôi có những điều sau đây.

  1. Một quá trình Java viết nhật ký trên tệp
  2. Một tập lệnh shell bắt đầu quá trình Java.

Tôi cần đọc tệp nhật ký sau khi bắt đầu quá trình Java để kiểm tra bắt đầu chính xác.

Tôi đã thử với tail -fnhưng nó vẫn nối dài mãi mãi. Tôi cần taildừng lại sau khi in n dòng. Có một cách như -ntùy chọn cho dòng tiền tố?


1
Tệp nhật ký của bạn có được dọn sạch mỗi lần không, sau khi shell script chạy quy trình Java?
c0rp

Tôi sử dụng log4j với chế độ chắp thêm để ghi tệp nhật ký. Nó xoay sau khi kích thước tệp tăng lên tới 10MB.
theShadow89

Câu trả lời:


24

Bạn có thể đường ống đầu ra của tail -fđể headnhằm hạn chế số lượng dòng hiển thị:

tail -f [PATH] | head -n 100

để chỉ hiển thị tổng cộng 100 dòng.


7

Chỉ dòng mới

Với đơn giản tail -f, 10 dòng đầu tiên là từ tệp như đã tồn tại:

tail -f file.log | head -30

ghi 10 dòng log.txtkhi nó được chạy và 20 (n-10) dòng được thêm vào sau.

Với tệp nhật ký, bạn thường sử dụng -f( --follow) để xem các dòng được viết trong tương lai.

Để chỉ xem 30 dòng được viết sau khi tailbắt đầu, hãy giới hạn đầu ra ban đầu là 0:

tail -f -n0 file.log | head -30
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.