यूनिक्स बिल्ली लाइन से शुरू होती है


40

किसी विशिष्ट लाइन (बड़ी संख्या जैसे 70000) से शुरू होने वाली फ़ाइल से आउटपुट का सबसे अच्छा तरीका क्या है। कुछ इस तरह:

cat --line=70000 <file>

जवाबों:


60

पूंछ पर एक नज़र डालें, अधिक स्पष्ट रूप से, यह है - सुर्ख = + एन स्विच:

tail --lines=+100 <file>

वाह। 8 साल तक linux पर इसे इस्तेमाल करने के बाद भी मुझे ये पता नहीं था! मैं हमेशा एक bash fn का उपयोग करता था! धन्यवाद ! getFromLine () {lineno = wc -l $1 | awk '{print $1}'; लिनीनो = expr $lineno - $2; पूंछ-एन $ लिनिनो $ 1; }
सिक्योर बडशाह

2
नोट के रूप में, यह माउंटेन लायन (डार्विन कर्नेल संस्करण 13.1.0) पर काम नहीं करता है। माउंटेन शेर का रूपांतर हैtail -n
कौशिक घोष

22

सबसे स्पष्ट तरीका है tail। आपके द्वारा उपयोग किए जा रहे OS के आधार पर वाक्यविन्यास थोड़ा अलग हो सकता है:

tail -n +70000

यदि आप tailकाम पर नहीं जा सकते हैं, तो आप उपयोग कर सकते हैं sed, लेकिन यह धीमा हो सकता है:

sed -pe '1,69999d'

tailMinGW (एक 600 एमबी पाठ फ़ाइल पर) में बस ठीक काम किया । रनटाइम केवल कुछ सेकंड था (लेकिन इनपुट फ़ाइल फ़ाइल कैश में पहले से ही हो सकती थी)।
पीटर मोर्टेंसन

2

यदि एक पंक्ति संख्या के बजाय आपको किसी दिए गए लाइन पर लिस्टिंग शुरू करने की आवश्यकता है $phrase, तो निम्न प्रयास करें।

more -1000 +/"$phrase" yourfilename | sed '1,4d'

-1000 लगातार 1000 लाइनों तक पाठ को सूचीबद्ध करेगा; आप इसे आवश्यकतानुसार बदल सकते हैं। sedआदेश उत्पादन, जो स्वचालित रूप से डाला गया के पहले 4 लाइनें बंद काटना होगा more, एक रिक्त पंक्ति, संदेश "... लंघन", और दो पंक्तियों अपने इच्छित शुरू कर लाइन पूर्ववर्ती हैं। मुझे लगता है कि यह आपके सिस्टम के आधार पर भिन्न हो सकता है।


2

आप awk कमांड के साथ NR पैरामीटर का उपयोग कर सकते हैं :

cat <file> | awk '{if (NR>=7000) print}'

2
आप इस कमांड का उपयोग अन्य सीमाओं के साथ कर सकते हैं। नमूने के रूप में: cat messages | awk '{if (NR>=7000 && NR <7003) print}'आपको केवल 7000०००, and००१ और .००२ पंक्ति में दिखाया गया है।
५० ’

-1

2
आकर्षक लिंक, लेकिन यह वास्तव में इस प्रश्न पर लागू होने वाली कोई भी जानकारी नहीं देता है, और आपका tailसुझाव हफ्तों पहले से स्वीकृत और अन्य उत्तरों के समान है। पोस्ट करने के लिए परेशान क्यों?
क्वैक क्वोटोटे

लिंक टूट गया है -...can't find the server at www.scripterworld.com.
पीटर मोर्टेनसेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.