2011-08-11 10 views
19

मान लीजिए कि एक बड़ी टेक्स्ट फ़ाइल है और मैं केवल उन पंक्तियों को मुद्रित करना चाहता हूं जो कुछ पैटर्न से मेल नहीं खाते हैं। जाहिर है, मैं egrep -v 'patter1|pattern2|pattern3 का उपयोग कर सकता हूं। अब क्या होगा यदि वे सभी पैटर्न टेक्स्ट फ़ाइल में हैं? egrep फ़ाइल से पैटर्न पढ़ने के लिए सबसे अच्छा तरीका क्या है?फ़ाइल से "grep" पैटर्न कैसे बनाएं?

+0

ध्यान दें कि कभी कभी आप से बचने के लिए 'की जरूरत है |' ... उदा 'grep 'pattern1 \ | pattern2 \ | pattern3'' – vikingsteve

उत्तर

28
grep -v -f pattern_file 
+0

भविष्य के संदर्भ के लिए:' -v' को हटाएं और इसके बजाय 'cat myfile | grep -f pattern_file' का उपयोग करें, यदि आप ** लाइनों को रखना चाहते हैं ** जो एक पैटर्न से मेल खाते हैं पैटर्न फ़ाइल। – Basj

+0

हू? यही वह नहीं है जिसे ओपी ने पूछा था। इसके अलावा, 'grep' में ** ** cat' के लिए अधिक कुशल नहीं - बस 'myfile' को' grep' के लिए तर्क के रूप में निर्दिष्ट करें। – lingfish

+0

@lingfish आपको यह कहना चाहिए था कि आपकी टिप्पणी बस बसज की टिप्पणी को संदर्भित करती है और मेरा जवाब नहीं ... – TMS

5

egrep में -f विकल्प है जो ठीक है: आप एक फ़ाइल निर्दिष्ट करते हैं, और यह प्रति पंक्ति एक फ़ाइल से पैटर्न को पढ़ता है।

संबंधित मुद्दे