2016-05-02 8 views
44

मुझे लॉग फ़ाइल से लॉग की आखिरी 100 पंक्तियां पुनर्प्राप्त करने की आवश्यकता है। मैं एसईडी आदेशपिछले 100 लाइन लॉग प्राप्त करें

sed -n -e '100,$p' logfilename 

कृपया मुझे पता है कि कैसे मैं इस आदेश को विशेष रूप से पिछले 100 लाइनों को पुनः प्राप्त करने के लिए बदल सकते हैं की कोशिश की।

+0

यह मैनुअल में उल्लिखित है: https://www.gnu.org/software/sed/manual/html_node/tail.html#tail, कैसे sed पूंछ अनुकरण कर सकते हैं। –

उत्तर

80

आप इस प्रकार tail आदेश का उपयोग कर सकते हैं:

tail -100 <log file> > newLogfile 

अब पिछले 100 लाइनों में newLogfile

+8

ध्यान दें कि 'पूंछ' के कुछ और हाल के संस्करणों में वाक्यविन्यास 'tail -n 100 'की आवश्यकता होती है ... – twalberg

4

देखो उपस्थित रहेंगे, SED स्क्रिप्ट है कि 100 पिछले लाइनों प्रिंट आप के लिए दस्तावेज में पा सकते हैं एसईडी (https://www.gnu.org/software/sed/manual/sed.html#tail):

$ cat sed.cmd 
1! {; H; g; } 
1,100 !s/[^\n]*\n// 
$p 

$ sed -nf sed.cmd logfilename 

मेरे लिए यह अपनी स्क्रिप्ट से जिस तरह से और अधिक कठिन है इसलिए

tail -n 100 logfilename 

बहुत आसान है। और यह काफी कुशल है, अगर यह जरूरी नहीं है तो यह सभी फाइल नहीं पढ़ेगा। tail ./huge-file के लिए स्ट्रेस रिपोर्ट के साथ मेरा उत्तर देखें: https://unix.stackexchange.com/questions/102905/does-tail-read-the-whole-file/102910#102910

संबंधित मुद्दे