मेरे पास एक बड़ी लॉग फ़ाइल है जिसे मैं इसे किसी विशेष शब्द के लिए स्कैन करने का प्रयास कर रहा हूं। आम तौर पर, मेरे पास कुछ शब्द होंगे जिन्हें मुझे अपनी बड़ी लॉग फ़ाइल पर grep करने की आवश्यकता है और उस शब्द को प्रिंट करें जिसमें वे शब्द हैं।लाइनों में grep कैसे करें जिसमें लॉग फ़ाइल में विशेष शब्द होते हैं?
मुझे पता है कि फ़ाइल पर सरल grep कैसे करें। मान लीजिए कि अगर मेरा फ़ाइल नाम abc.log
है और मुझे एक पंक्ति ढूंढनी है जिसमें "हैलो" शब्द है तो मैं हमेशा ऐसा करता हूं और यह मेरे लिए लाइन प्रिंट करता है।
grep -i "hello" abc.log
लेकिन मुझे नहीं पता कि शब्दों के संयोजन के लिए grep कैसे करें। मतलब मेरे पास शब्दों की सूची होगी और मैं उन सभी शब्दों के लिए अपनी abc.log फ़ाइल स्कैन करूंगा और मैं उन पंक्तियों को मुद्रित करूंगा जिनमें वे शब्द अलग-अलग हैं।
#!/bin/bash
data="hello,world,tester"
# find all the lines which contains word hello or world or tester
तो मेरे ऊपर खोल स्क्रिप्ट में मैं अपने डेटा चर विभाजित है और इसलिए किसी भी लाइन जो हैलो शब्द है abc.log में हैलो शब्द के लिए दिखाई देगा, मैं इसे बाहर दुनिया और परीक्षक के साथ के रूप में अच्छी तरह से मुद्रित और इसी तरह होगा।
मैं यह सुंदर जेनेरिक बनाने की कोशिश कर रहा हूं ताकि मुझे डेटा चर में शब्दों की सूची जोड़ने की ज़रूरत है, बिना लॉग grepping के वास्तविक तर्क को छूए।
धन्यवाद o11c। मेरे मामले में पैटर्न बहुत बढ़ सकते हैं इसलिए फ़ाइल दृष्टिकोण अच्छा है लेकिन मैं इसमें एक और चीज़ जोड़ना चाहता था - यदि इसमें कोई विशेष शब्द है तो लाइन को प्रिंट न करें। मैं इसे अपने वर्तमान दृष्टिकोण से कैसे करूं? – john
@ user2809564 'grep -v wordtoexclude' (या '-e' या' -f', आदि) के माध्यम से पहले' grep' को पाइप करें – o11c
धन्यवाद। यह संभव हो सकता है कि मेरे पास कई पैटर्न भी शामिल हो सकते हैं ताकि बाहर निकलने के लिए कोई भी तरीका हो, जिसमें पैटर्न शामिल करने के लिए पैटर्न शामिल हैं और पैटर्न को बाहर करने के लिए पैटर्न है और फिर grep करने के लिए इस फ़ाइल का उपयोग करें? – john