आसपास की रेखाओं को दिखाने के लिए grep के साथ टेल-ऑफ़ का उपयोग कैसे करें


16

मैं केवल एक डोमेन लेकिन निम्नलिखित दो पंक्तियों के द्वारा तैयार किए गए लॉगफ़ाइल में आउटपुट देखना चाहूंगा ।

उदाहरण:

tail -f /var/log/apache2/modsec_audit.log |grep mydomain.de

यह सभी लाइनें दिखाता है, जिसमें "mydomain.de" शामिल है, लेकिन महत्वपूर्ण जानकारी लाइन के नीचे की पंक्ति में है, जहां डोमेन शामिल है

जवाबों:


25

परिणाम के पहले और बाद में कितनी पंक्तियाँ परिभाषित करने के लिए grep के पास अतिरिक्त विकल्प हैं:

  • -A (उपरांत)
  • -B (इससे पहले)
  • -C (संदर्भ [पहले + बाद]]

तो अपने मामले में आप की जरूरत है -A:

YOUR_COMMAND |grep -A NUMBER YOURDOMAIN

फ़ाइल में NUMBERलाइनों के ऊपर कमांड प्रिंट YOURDOMAIN


हालाँकि, कृपया ध्यान दें कि यह एक GNU एक्सटेंशन है। यदि आप लिनक्स पर हैं, तो आपके पास grepनिश्चित रूप से यह विकल्प है। यदि आप नहीं हैं, तो आप बेहतर जांच करते हैं।
लियोनिड

9

Grep के लिए संदर्भ लाइनों की संख्या पास करने का प्रयास करें।

| grep -C 5

मैच से पहले और बाद में 5 लाइनें प्रिंट करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.