लॉग फ़ाइल को फ़िल्टर करने के लिए Grep


0

इस तरह दिखने वाली लॉग फ़ाइल को कैसे बदलें:

Jul 6 17:35:10 sdc-prius motion_planner[1284]: new destination: [55.733510, 37.587401]
Jul 6 17:35:11 sdc-prius control[1284]: next waypoint: [55.733668, 37.587143] 
Jul 6 17:35:11 sdc-prius control[1281]: steering: 212, throttle: 420
Jul 6 17:35:11 sdc-prius control[1281]: steering: 145, throttle: 634
Jul 6 17:35:12 sdc-prius control[1281]: steering: 65, throttle: 538
Jul 6 17:35:13 sdc-prius control[1284]: next waypoint: [55.733948, 37.586731] 
Jul 6 17:35:13 sdc-prius control[1281]: steering: 121, throttle: 340
Jul 6 17:35:13 sdc-prius control[1281]: steering: 150, throttle: 600
Jul 6 17:35:14 sdc-prius control[1281]: steering: 46, throttle: 346
Jul 6 17:35:13 sdc-prius control[1284]: next waypoint: [55.733955, 37.586744] 
Jul 6 17:35:13 sdc-prius control[1281]: steering: 485, throttle: 567
Jul 6 17:35:13 sdc-prius control[1284]: next waypoint: [55.734094, 37.586518]
Jul 6 17:35:14 sdc-prius control[1281]: steering: 278, throttle: 400 
Jul 6 17:35:14 sdc-prius control[1284]: next waypoint: [55.734300, 37.586229]
Jul 6 17:35:14 sdc-prius control[1281]: steering: 982, throttle: 400 
Jul 6 17:35:14 sdc-prius control[1284]: next waypoint: [55.734530, 37.585896]
Jul 6 17:35:14 sdc-prius control[1281]: steering: 98, throttle: 400 
Jul 6 17:35:15 sdc-prius control[1284]: next waypoint: [55.733948, 37.586731]
Jul 6 17:35:15 sdc-prius control[1281]: steering: 33, throttle: 200 
Jul 6 17:35:15 sdc-prius motion_planner[1284]: new destination: [55.734839, 37.585531]
Jul 6 17:35:15 sdc-prius control[1281]: steering: 2, throttle: 100

लेकिन जैसा होना चाहिए:

Jul 6 17:35:11 37.587143, 55.733668
Jul 6 17:35:13 37.586731, 55.733948
Jul 6 17:35:13 37.586744, 55.733955
Jul 6 17:35:13 37.586518, 55.734094
Jul 6 17:35:14 37.586229, 55.734300
Jul 6 17:35:14 37.585896, 55.734530
Jul 6 17:35:15 37.586731, 55.733948

मैं जहाँ तक जा पा रहा था:

grep -o '^[A-Z][a-z][a-z]\s\d\s\d\d\:\d\d\:\d\d\|\[\d\d\.\d\d\d\d\d\d\,\s\d\d\.\d\d\d\d\d\d\]' test.txt

"एक लॉग फ़ाइल बदलें" से आपका क्या मतलब है?
टोटो

जवाबों:


2

खेतों के पुन: व्यवस्थित होने के कारण, आप ऐसा नहीं कर पाएंगे grep, लेकिन sedकाम करेंगे।

यह देखते हुए कि आपके पास पहले से ही नियमित अभिव्यक्तियों का एक उचित समझ है, आपको इसे स्रोत फ़ील्ड को चिह्नित करने और प्रतिस्थापन में फिर से व्यवस्थित करने के लिए सीधा खोजना चाहिए, हालांकि एक अंक से मेल sedनहीं \dखाता है।

निम्नलिखित सरलीकृत मिलान आपके परीक्षण डेटा पर काम करता है:

sed -En 's/^(.*) sdc-.*\[.*\].*\[(.*), (.*)\]/\1 \3, \2/p' test.txt

(और )क्षेत्रों परिसीमित, साथ \N(जहां Nहै 1के लिए 9प्रतिस्थापन स्ट्रिंग में खेतों को संकेतित)।

यह एक अच्छा परिचय है sed

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