หาง -f แต่ดูดเนื้อหาของไฟล์ก่อน (aka `cat -f`)


9

ฉันต้องการที่จะแสดงไฟล์ทั้งหมดก่อนที่จะติดตามมันสำหรับการเปลี่ยนแปลงใหม่ไม่เพียง แต่ที่ผ่านมา 10 เส้น (ครับผมรู้ว่ามันไม่หางแนวคิด) กล่าวอีกนัยหนึ่งสิ่งที่cat -fอยากทำถ้ามันมีอยู่จริง ชายของ Tail ไม่ให้ความคิดใด ๆ แก่ฉัน ตัวเลือกเดียวที่ฉันเห็นตอนนี้คือการรวมcat ทั้งหมด แต่ 10 บรรทัดสุดท้ายและเอาต์พุตหาง -f

มีคำแนะนำอะไรมั้ย


3
cat $f && tail -n0 -f $fอยู่ในใจและการตรวจสอบหน้าคนที่ดูเหมือนว่าtail -c0 -f $fอาจทำในสิ่งที่คุณต้องการ (และจะดีกว่าเพราะมันไม่ได้สร้างเงื่อนไขการแข่งขันระหว่างสองกระบวนการที่ข้อมูลที่เขียนอาจถูกละเว้น) ฉันไม่สามารถเข้าถึงระบบ Linux ได้ในขณะนี้ แต่คุณสามารถทำสิ่งใดสิ่งหนึ่งที่คุณต้องการได้บ้าง
CVn

สิ่งนี้มีประโยชน์และฉันเพิ่งเพิ่มคุณสมบัติดังกล่าวให้กับภาษาการเขียนโปรแกรม: "กระแสข้อมูลหาง" ซึ่งสามารถอ่านไฟล์ได้ตามปกติตั้งแต่เริ่มต้นจนถึงสิ้นสุดจากนั้นเข้าสู่โหมด "ท้าย -f" ในตอนท้ายและสามารถสังเกตได้ว่า ไฟล์ถูกแทนที่ด้วยไฟล์ที่สั้นกว่าหรือถูกตัดทอน คุณต้องการสิ่งนี้เพื่อให้สามารถทำสิ่งต่าง ๆ เช่นประมวลผลบันทึกที่มีอยู่ (ติดตามงานค้าง) จากนั้นเริ่มประมวลผลรายการใหม่
Kaz

คำตอบ:


14

นี่คือวิธีหนึ่งในการทำ:

tail -f -n+0 /var/log/messages

ดูเหมือนจะไม่มีความแตกต่างระหว่าง a +0และ a +1ดังนั้นนี่จะเทียบเท่า:

tail -f -n+1 /var/log/messages

2
ส่วนที่เกี่ยวข้องของหน้าคน (ช่วยให้ผู้คนพิมพ์บางอย่าง) ... -n, --lines = K เอาท์พุท K บรรทัดสุดท้ายแทนที่จะเป็น 10 ครั้งล่าสุด; หรือใช้ -n + K เพื่อเอาท์พุทบรรทัดที่ขึ้นต้นด้วย Kth
dehedgehog
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.