สิ้นสุดหาง -f หลังจากพิมพ์ n บรรทัด


10

ฉันมีดังต่อไปนี้

  1. กระบวนการ Java เขียนล็อกไฟล์
  2. เชลล์สคริปต์เริ่มต้นกระบวนการ Java

ฉันต้องอ่านไฟล์บันทึกหลังจากเริ่มกระบวนการ Java เพื่อตรวจสอบการเริ่มต้นที่ถูกต้อง

ฉันลองแล้วtail -fแต่มันยังคงอยู่ต่อไปตลอดไป ฉันต้องtailหยุดหลังจากพิมพ์ n บรรทัด มีวิธีเช่น-nตัวเลือกสำหรับสาย previuos หรือไม่


1
ไฟล์บันทึกของคุณทำความสะอาดทุกครั้งหรือไม่หลังจากเชลล์สคริปต์เรียกใช้กระบวนการ Java
c0rp

ฉันใช้ log4j กับโหมดต่อท้ายเพื่อเขียนไฟล์บันทึก มันหมุนหลังจากขนาดไฟล์เพิ่มขึ้นถึง 10MB
theShadow89

คำตอบ:


24

คุณสามารถไพพ์เอาต์พุตของtail -fถึงheadเพื่อ จำกัด จำนวนบรรทัดที่แสดง:

tail -f [PATH] | head -n 100

เพื่อแสดงทั้งหมด 100 บรรทัด


7

บรรทัดใหม่เท่านั้น

ด้วยธรรมดาtail -f10 บรรทัดแรกมาจากไฟล์ที่มีอยู่แล้ว:

tail -f file.log | head -30

เขียน 10 บรรทัดlog.txtเมื่อรันและ 20 บรรทัด (n-10) ที่เพิ่มในภายหลัง

ด้วยไฟล์บันทึกคุณจะใช้-f( --follow) เพื่อดูบรรทัดที่เขียนในอนาคต

หากต้องการดูเฉพาะ 30 บรรทัดที่เขียนหลังจากtailเริ่มทำงานให้ จำกัด เอาต์พุตเริ่มต้นเป็น 0:

tail -f -n0 file.log | head -30
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.