जवाबों:
पैटर्न मैच उलट विकल्प -v
के लिए grep
इस बात के लिए वास्तव में उपयोगी है:
grep -v 'UFW BLOCK' /var/log/syslog
यह आपको उन सभी लाइनों को दिखाएगा जिनमें शामिल नहीं हैं UFW BLOCK
। के रूप में grep
डिफ़ॉल्ट रूप से उपयोग करता है बुनियादी नियमित अभिव्यक्ति, कोष्ठक के शामिल किए जाने यह अंतरिक्ष सहित 'UFW ब्लॉक' की अलग-अलग पात्रों में से किसी के लिए खोज कर देगा। आप शायद कोई आउटपुट नहीं देंगे। यदि आपको यह सुनिश्चित करने की आवश्यकता है कि स्ट्रिंग के चारों ओर ब्रैकेट हैं, तो या तो उनसे बच जाएं \[UFW BLOCK\]
, या केवल निश्चित स्ट्रिंग्स को शामिल करने के -F
विकल्प का उपयोग करें grep
( इस पर सलाह के लिए Zanna और Steeldriver के लिए धन्यवाद ):
grep -Fv '[UFW BLOCK]' /var/log/syslog
आप आउटपुट को पेजर की तरह देख कर आसान बना सकते हैं less
:
grep -v 'UFW BLOCK' /var/log/syslog | less
या बाद में देखने के लिए अपने घर निर्देशिका में एक फ़ाइल के लिए उत्पादन पुनर्निर्देशित:
grep -v 'UFW BLOCK' /var/log/syslog > ~/filtered_syslog
fgrep
कमांड का भी उपयोग कर सकते हैं जो इसके बराबर है grep -F
।
आप संपादन क्षमताओं के साथ किसी भी उपकरण का उपयोग कर सकते हैं। आपको पहले से ही समाधान का उपयोग कर दिया गया है grep
और sed
, यहां कुछ अन्य विकल्प हैं। इन सभी को आसानी से करने के लिए पहुंचाया जा सकता है less
या more
या कुछ और।
पर्ल
perl -ne 'print unless /\[UFW BLOCK\]/' /var/log/syslog
चूँकि यह Perl, TIMTOWDI है! ।
perl -pe '$_="" if /\[UFW BLOCK\]/' /var/log/syslog
perl -ne '/\[UFW BLOCK\]/ || print' /var/log/syslog
perl -ne 'print if !/\[UFW BLOCK\]/' /var/log/syslog
perl -ne '!/\[UFW BLOCK\]/ && print' /var/log/syslog
perl -ne '/\[UFW BLOCK\]/ ? "" : print' /var/log/syslog
awk
awk '!/\[UFW BLOCK\]/' file
आप भी उपयोग कर सकते हैं awk
:
awk '!/PATTERN/' log
जब मैंने एक से अधिक "पैटर्न" प्राप्त किए हैं तो मैं इसका उपयोग करता हूं और मैं दो का उपयोग नहीं करना चाहता grep
:
... | grep -v foo | grep -v bar
कौन सा वाक्यविन्यास है:
awk '!/PATTERN/ && !/PATTERN2/' log
grep -Ev "foo|bar"
?
-e
कई पैटर्न को परिभाषित करने के लिए भी उपयोग कर सकते हैं । grep -v -e 'foo' -e 'bar'
less
रेगेक्स पैटर्न के बाद प्रदर्शित लाइनों को फ़िल्टर करने की संभावना प्रदान करता है। आप&
पैटर्न के बाद टाइप करके इस सुविधा का उपयोग कर सकते हैं , और आप इसे&
केवल टाइप करके वापस कर सकते हैं।