grep खोज + अगली पंक्ति


18

grepकमांड के साथ , मुझे वह पाठ मिला जिसकी मुझे आवश्यकता है:

grep 'C02' ~/temp/log.txt अब, जहां भी मुझे वांछित स्ट्रिंग मिलती है, मैं पाया गया स्ट्रिंग के बाद लाइन को प्रिंट करना चाहूंगा।

उदाहरण के लिए, मान लें कि वांछित पाठ 'एबीसी' है, और एबीसी 12 पंक्ति में पाया जाता है, मैं लाइन 13 को भी प्रिंट करना चाहूंगा।


3
grep -A1 'abc' ~/temp/log.txtके लिए 1 संदर्भ की लाइन एक मैच fter - देखना Context Line Controlपुस्तिका (की उपधारा man grep)
steeldriver

1
gnu grep इसे आसान बनाता है; पॉज़िक्स में ए
जेफ स्कॉलर

1
हाय और स्टैक एक्सचेंज में आपका स्वागत है! एसई पर, यह उम्मीद है कि आप मदद के लिए यहां आने से पहले कुछ बुनियादी शोध करेंगे। उदाहरण के लिए, "grep show next line" की खोज ने पहले परिणाम में एक अप्रत्यक्ष उत्तर और दूसरे में एक सीधा उत्तर दिया। आपने पहले से ही इस समस्या को हल करने के लिए क्या किया है?
2

जवाबों:


25

यदि आप लिनक्स सिस्टम का उपयोग कर रहे हैं, तो आप कोशिश कर सकते हैं:

grep -A1 "C02" ~/temp/log.txt


OPTIONS
       -A NUM, --after-context=NUM
              Print NUM lines of trailing context after matching lines.  Places a line containing -- between contiguous groups of matches.
       -B NUM, --before-context=NUM
              Print NUM lines of leading context before matching lines.  Places a line containing -- between contiguous groups of matches.
       -C NUM, --context=NUM
              Print NUM lines of output context.  Places a line containing -- between contiguous groups of matches.

आप awk का उपयोग इस प्रकार भी कर सकते हैं:

awk '/C02/{print;getline;print}' ~/temp/log.txt

1
इसके अलावा,sed -n '/C02/{N; p}' ~/temp/log.txt
सुंदरदीप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.