प्रिंट एन लाइनों के बाद पूंछ -f समाप्त करना


10

मेरे पास निम्नलिखित है।

  1. एक जावा प्रक्रिया लेखन फ़ाइल पर लॉग करता है
  2. जावा प्रक्रिया शुरू करने वाली एक शेल स्क्रिप्ट।

सही प्रक्रिया शुरू करने के लिए जावा प्रक्रिया शुरू करने के बाद मुझे लॉग फाइल को पढ़ना होगा।

मेरे पास कोशिश है tail -fलेकिन यह हमेशा के लिए बनी रहती है। मुझे tailप्रिंट n लाइनों के बाद स्टॉप की आवश्यकता है । -nप्रीवियस लाइनों के लिए विकल्प की तरह एक तरीका है ?


1
क्या आपकी लॉग फ़ाइल हर बार साफ हो जाती है, शेल स्क्रिप्ट के बाद जावा प्रक्रिया चलती है?
c0rp

मैं लॉग फ़ाइल लिखने के लिए append मोड के साथ log4j का उपयोग करता हूं। फ़ाइल आयाम 10MB तक बढ़ने के बाद यह घूमता है।
theShadow89

जवाबों:


24

आप दिखाए गए लाइनों की मात्रा को सीमित tail -fकरने के headलिए आउटपुट को पाइप कर सकते हैं :

tail -f [PATH] | head -n 100

केवल 100 लाइनों को दिखाने के लिए।


7

केवल नई लाइनें

सादे के साथ tail -f, पहली 10 पंक्तियाँ फ़ाइल से हैं क्योंकि यह पहले से मौजूद है:

tail -f file.log | head -30

log.txtजब इसे चलाया जाता है तो 10 लाइनें लिखता है, और 20 (n-10) लाइनें जो बाद में जोड़ी जाती हैं।

एक लॉग फ़ाइल के साथ, आप सामान्य रूप से उपयोग -f( --follow) लाइनों भविष्य में लिखा देखने के लिए।

केवल 30 पंक्तियों को देखने के लिए, जहां बाद tailमें लिखा गया था, प्रारंभिक आउटपुट को 0 तक सीमित करें:

tail -f -n0 file.log | head -30
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.