तो एक फ़ाइल को खोलने के साथ खींचना cat
और फिर grep
मिलान लाइनों को प्राप्त करने के लिए उपयोग करना मुझे केवल तब तक मिलता है जब मैं उस विशेष लॉग सेट के साथ काम कर रहा हूं जिसके साथ मैं काम कर रहा हूं। इसे लाइनों को एक पैटर्न से मिलान करने का एक तरीका चाहिए, लेकिन केवल मैच के बाद लाइन के हिस्से को वापस करने के लिए। मैच से पहले और बाद का हिस्सा लगातार अलग-अलग होगा। मैंने उपयोग करने के साथ खेला है sed
या awk
, लेकिन यह पता लगाने में सक्षम नहीं है कि मैच से पहले के हिस्से को हटाने के लिए लाइन को कैसे फ़िल्टर किया जाए, या मैच के बाद का हिस्सा वापस किया जाए, या तो काम करेगा। यह एक पंक्ति का एक उदाहरण है जिसे मुझे फ़िल्टर करने की आवश्यकता है:
2011-11-07T05:37:43-08:00 <0.4> isi-udb5-ash4-1(id1) /boot/kernel.amd64/kernel: [gmp_info.c:1758](pid 40370="kt: gmp-drive-updat")(tid=100872) new group: <15,1773>: { 1:0-25,27-34,37-38, 2:0-33,35-36, 3:0-35, 4:0-9,11-14,16-32,34-38, 5:0-35, 6:0-15,17-36, 7:0-16,18-36, 8:0-14,16-32,34-36, 9:0-10,12-36, 10-11:0-35, 12:0-5,7-30,32-35, 13-19:0-35, 20:0,2-35, down: 8:15, soft_failed: 1:27, 8:15, stalled: 12:6,31, 20:1 }
मुझे जिस भाग की आवश्यकता है वह "ठप" होने के बाद सब कुछ है।
इसके पीछे पृष्ठभूमि यह है कि मैं यह पता लगा सकता हूं कि कितनी बार कुछ स्टाल हैं:
cat messages | grep stalled | wc -l
मुझे क्या करने की आवश्यकता है यह पता लगाने के लिए कि कितनी बार एक निश्चित नोड ठप हो गया है ("कॉल को रोकने के बाद प्रत्येक बृहदान्त्र से पहले भाग द्वारा इंगित किया गया है।) यदि मैं सिर्फ उसके लिए जीआरपी (यानी 20 :) यह लाइनों को वापस कर सकता है जिसमें नरम विफल रहता है, लेकिन कोई स्टाल नहीं है, जो मेरी मदद नहीं करता है। मुझे केवल रुके हुए हिस्से को फ़िल्टर करने की आवश्यकता है ताकि मैं उन विशिष्ट नोड के लिए जीआरपी कर सकूं, जो बंद हो गए हैं।
सभी इरादों और उद्देश्यों के लिए, यह मानक GNU कोर बर्तनों के साथ एक नि: शुल्क प्रणाली है, लेकिन मैं सहायता के लिए कुछ भी अतिरिक्त स्थापित नहीं कर सकता।
sed
समाधान ले लो और विशेष रूप से व्हाट्सएप का इलाज न करें।