रेखा संख्याओं को समझने के लिए, एक साधारण grep -n कमांड ने नौकरी की थी (-एन तर्क पंक्ति संख्याओं को आउटपुट करता है)। इससे यह पता लगाना आसान हो गया कि मुझे निकालने के लिए क्या चाहिए।
grep -n wp_posts howtogeekdb010114.bak | more
इस तरह के कुछ में परिणाम, जो आउटपुट के बाईं ओर लाइन नंबर दिखाता है। सबकुछ "अधिक" में पिप करना सुनिश्चित करता है कि आप बिना स्क्रॉल किए बिना पहली पंक्ति देख सकते हैं। अब आपके पास लाइन नंबर शुरू हो गया है, और संभवतः एक के साथ समाप्त होना है।
4160:-- Table structure for table `wp_posts` 4163:DROP TABLE IF EXISTS `wp_posts`; 4166:CREATE TABLE `wp_posts` ( 4203:-- Dumping data for table `wp_posts` 4206:LOCK TABLES `wp_posts` WRITE; 4207:/*!40000 ALTER TABLE `wp_posts` DISABLE KEYS */; 4208:INSERT INTO `wp_posts` VALUES (1,2,'2006-09-11 05:07:23','2006-09-11
आप निश्चित रूप से, grep से आउटपुट को किसी अन्य फ़ाइल में पाइप कर सकते हैं, जैसे:
grep keyword filename.txt > outputfile
मेरे मामले में, वह काम नहीं करना चाहता था, क्योंकि मैं किसी कारण से परिणामी बैकअप आयात नहीं कर सका। इसलिए, मुझे sed का उपयोग करके लाइनों को निकालने का एक अलग तरीका मिला, और इस विधि ने काम किया।
sed -n '4160,4209p' howtogeekdb0101140201.bak > outputfile
असल में सिंटैक्स इस तरह है, -n तर्क का उपयोग करना सुनिश्चित करें, और दूसरी पंक्ति संख्या के बाद "पी" शामिल करें।
sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp' filename > outputfilename
कुछ अन्य तरीकों से आप फ़ाइल के बीच में विशिष्ट लाइनों को खींच सकते हैं? आप फ़ाइल के पहले एक्स लाइनों के माध्यम से पढ़ने के लिए + संख्या तर्क के साथ "हेड" कमांड का उपयोग कर सकते हैं और फिर उन पंक्तियों को निकालने के लिए पूंछ का उपयोग कर सकते हैं। सबसे अच्छा विकल्प नहीं है, बहुत सारे ओवरहेड। सरल विकल्प? आप फ़ाइल को कई पंक्तियों में फ़ाइल को अपने इच्छित लाइन नंबर पर बदलने के लिए स्प्लिट कमांड का उपयोग कर सकते हैं, और फिर सिर या पूंछ का उपयोग करके लाइनों को निकाल सकते हैं।
या आप सिर्फ sed का उपयोग कर सकते हैं।