मुखपृष्ठ » कैसे » लिनक्स टर्मिनल का उपयोग करके फ़ाइल के मध्य से लाइनें कैसे निकालें

    लिनक्स टर्मिनल का उपयोग करके फ़ाइल के मध्य से लाइनें कैसे निकालें

    जब आप अपने स्वयं के सर्वर का प्रबंधन करते हैं, तो जिन चीजों को आप समाप्त करते हैं, उनमें से एक अर्ध-नियमित आधार पर करने की आवश्यकता होती है, एक फ़ाइल के बीच से सामान निकालते हैं। हो सकता है कि यह एक लॉग फ़ाइल हो, या आपको अपनी MySQL बैकअप फ़ाइल के बीच में से किसी एक तालिका को अतिरिक्त करने की आवश्यकता हो, जैसे मैंने किया था.

    लाइन संख्याओं का पता लगाने के लिए, एक साधारण grep -n कमांड ने काम किया (-n तर्क लाइन संख्याओं को आउटपुट करता है)। इससे यह पता लगाना आसान हो गया कि मुझे क्या निकालने की जरूरत है.

    grep -n wp_posts howtogeekdb010114.bak | अधिक

    परिणाम कुछ इस तरह से है, जो आउटपुट के बाईं ओर लाइन नंबर दिखाता है। सब कुछ "अधिक" में डालना यह सुनिश्चित करता है कि आप पहली पंक्ति को बिना स्क्रॉल किए देख सकते हैं। अब आपके पास शुरू करने के लिए लाइन नंबर है, और शायद एक के साथ समाप्त करने के लिए.

    4160: - टेबल संरचना के लिए टेबल 'wp_posts' 4163: DROP TABLE IF EXISTS 'wp_posts'; 4166: क्रिएट टेबल 'wp_posts' (4203: - टेबल 'wp_posts' के लिए डंपिंग डेटा 4206: LOCK TABLES 'wp_posts' WRITE; 4/207///! 40000 ALTER TABLE 'wp_posts' DISABLE KEYS * / 4208]: 4208] [4208] 'VALUES (1,2,' 2006-09-11 05:07:23 ',' 2006-09-11

    आप निश्चित रूप से, grep से आउटपुट को किसी अन्य फ़ाइल में पाइप कर सकते हैं, जैसे:

    grep कीवर्ड फ़ाइल नाम। txt> outputfile

    मेरे मामले में, यह काम नहीं करना चाहता था, क्योंकि मैं किसी कारण से बैकअप का आयात नहीं कर सका। तो, मुझे sed का उपयोग करके लाइनों को निकालने का एक अलग तरीका मिला, और इस विधि ने काम किया.

    sed -n '4160,4209p' howtogeekdb0101140201.bak> outputfile

    मूल रूप से वाक्यविन्यास इस तरह है, एन-एन तर्क का उपयोग करना सुनिश्चित करें, और दूसरी पंक्ति संख्या के बाद "पी" शामिल करें.

    sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' फ़ाइल नाम> outputfilename

    कुछ अन्य तरीके आप किसी फ़ाइल के बीच में विशिष्ट रेखाएँ खींच सकते हैं? आप "हेड" कमांड का उपयोग केवल फ़ाइल के पहले एक्स लाइनों के माध्यम से पढ़ने के लिए + संख्या तर्क के साथ कर सकते हैं, और फिर अपनी लाइनों को निकालने के लिए पूंछ का उपयोग कर सकते हैं। सबसे अच्छा विकल्प नहीं, बहुत सारे ओवरहेड। सरल विकल्प? आप विभाजन संख्या का उपयोग उस फाइल को कई फाइलों में बदलने के लिए कर सकते हैं, जिस लाइन नंबर पर आप चाहते हैं, और फिर हेड या टेल का उपयोग करके लाइनें निकालें।.

    या आप बस sed का उपयोग कर सकते हैं.