मैं एक 'ग्रेप' या समाधान की तरह 'pcregrep -M' कि कि निम्नलिखित मानकों फिट बैठता है एक लॉग फ़ाइल को पार्स करता है का उपयोग करने में सक्षम होना चाहते पार्स:एक बहु चर लंबाई लॉग फ़ाइल
- प्रत्येक लॉग प्रविष्टि लंबाई में कई पंक्तियों हो सकता है
- लॉग प्रविष्टि की पहली पंक्ति महत्वपूर्ण यह है कि मैं
- प्रत्येक कुंजी उदाहरण नीचे मैं वापस जाने के लिए चाहते हो जाएगा में एक से अधिक पंक्ति में दिखाई दे
तो लिए खोज करना चाहते है हर पंक्ति है कि एच इसके बारे में KEY1 और अगले लॉग संदेश तक इसके नीचे की सभी सहायक पंक्तियां।
Log file: 01 Feb 2010 - 10:39:01.755, DEBUG - KEY1:randomtext blah blah2 T blah3 T blah4 F blah5 F blah6 blah7 01 Feb 2010 - 10:39:01.757, DEBUG - KEY1:somethngelse 01 Feb 2010 - 10:39:01.758, DEBUG - KEY2:randomtest this is a test 01 Feb 2010 - 10:39:01.760, DEBUG - KEY1:more logs here 01 Feb 2010 - 10:39:01.762, DEBUG - KEY1:eve more here this is another multiline log entry keeps on going but not as long as before 01 Feb 2010 - 10:39:01.763, DEBUG - KEY2:testing test test test end of key2 01 Feb 2010 - 10:39:01.762, DEBUG - KEY1:but key 1 is still going and going and going and going and going and going and going and going and going and going and going and going and going okay enough 01 Feb 2010 - 10:39:01.762, DEBUG - KEY3:and so on and on
Desired output of searching for KEY1: 01 Feb 2010 - 10:39:01.755, DEBUG - KEY1:randomtext blah blah2 T blah3 T blah4 F blah5 F blah6 blah7 01 Feb 2010 - 10:39:01.757, DEBUG - KEY1:somethngelse 01 Feb 2010 - 10:39:01.760, DEBUG - KEY1:more logs here 01 Feb 2010 - 10:39:01.762, DEBUG - KEY1:eve more here this is another multiline log entry keeps on going but not as long as before 01 Feb 2010 - 10:39:01.762, DEBUG - KEY1:but key 1 is still going and going and going and going and going and going and going and going and going and going and going and going and going okay enough
मैं की तरह कुछ करने के लिए कोशिश कर रहा था: '(। * \ N) कुंजी 1 +'
pcregrep -M लॉगफ़ाइल
लेकिन निश्चित रूप से सही काम नहीं करता।
प्रवेश के अंत को क्या परिभाषित करता है? क्या यह गारंटी है कि किसी प्रविष्टि के भीतर की रेखाएं अंकों से शुरू नहीं होंगी, लेकिन एक नई प्रविष्टि को परिभाषित करने वाली रेखा होगी? –
रेगेक्स की बजाय एक छोटी लिपि का उपयोग करना आसान हो सकता है। ऐसा करने का कोई कारण नहीं है? –