उन फ़ाइलों की सूची बनाएं जिनमें grep वाले दोनों कीवर्ड हैं


0

मैं grep -rउन दो कीवर्ड्स (जरूरी नहीं कि एक ही लाइन पर) में उन फाइलों (उपयोग ) को सूचीबद्ध करना चाहूंगा : word1, word2।

जब मैं निम्नलिखित कार्य करता हूं, तो मुझे वह फाइलें मिलती हैं जो word1या word2:

grep -r 'word1\|word2' .

मैंने भी निम्नलिखित की कोशिश की:

grep -r 'word1|word2'

जो कुछ भी वापस नहीं करता है, लेकिन मुझे यकीन नहीं है कि अगर यह है क्योंकि ऐसी कोई फाइल नहीं है जिसमें ये दोनों कीवर्ड हैं, या ऐसी कोई भी फाइल नहीं है, जिसमें ये दोनों कीवर्ड एक ही लाइन पर हों ।

मैं उन फ़ाइलों की सूची कैसे प्राप्त कर सकता हूं जिनमें फ़ाइल में दो कीवर्ड हैं?

जवाबों:


1

एक तरीका यह है कि एक कीवर्ड वाली फ़ाइलों की एक सूची बनाएं, फिर इस सूची को दूसरे के लिए खोजें, जैसे:

grep -l word2 $(grep -rl word1 .)

यदि आप मैचों को दिखाना चाहते हैं, तो तीसरा जोड़ें grep:

grep -E 'word1|word2' `grep -l word2 $(grep -rl word1 .)`

कार्यों sedको करने के लिए उपयोग करना भी संभव है grep, और ऐसा करना संभव हो सकता है कि आप एक सिंगल स्कैन में क्या चाहते हैं sed, लेकिन मैंने ऐसा नहीं सोचा है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.