इसलिए मेरे पास मानक लॉग प्रारूप का उपयोग करने के साथ अपाचे लॉग का एक गुच्छा है। मैं उन सभी लॉग लाइनों को प्राप्त करना चाहता हूं जो वेब क्रॉलर से नहीं आईं।
तो चलिए बताते हैं कि मेरे पास प्रविष्टियों की तरह एक फ़ाइल robot_patterns है
Googlebot
msnbot-media
YandexBot
bingbot
अगर मैं कमांड चलाता हूं तो मुझे grep -f robot_patterns *.log
उपरोक्त पैटर्न से मेल खाते बॉट्स द्वारा सभी प्रविष्टियां मिलेंगी। मेरी वास्तविक सूची में बॉट और एजेंटों की ~ 30 प्रविष्टियाँ हैं जिन्हें मैं अनदेखा करना चाहता हूँ।
लेकिन मैं उन सभी प्रविष्टियों को खोजना चाहता हूं जो बॉट्स से नहीं हैं । इसलिए मैं कोशिश करता हूं grep -v -f robot_patterns *.log
और कोई परिणाम जीआरपी द्वारा वापस नहीं किया जाता है। यह वह नहीं है जो मैं उम्मीद करता हूं या इच्छा करता हूं, और मुझे जो चाहिए वह पाने के लिए एक स्पष्ट रास्ता नहीं मिल रहा है। -v
किसी फ़ाइल में कई पैटर्नों के साथ संयुक्त विकल्प का उपयोग करते समय, grep केवल एक मिलान रेखा लौटाएगा यदि यह हर पैटर्न से मेल खाता है।
GNU grep 2.6.3
।