कंप्यूटर एक कंप्यूटर हो रहा है: यह वही कर रहा है जो आपने इसे करने के लिए कहा था कि आप इसे क्या करना चाहते थे।
grep -v "something something"
सभी पंक्तियों को प्रिंट करता है, जिसमें शामिल नहीं है something something
। उदाहरण के लिए, यह निम्नलिखित तीन में से दो पंक्तियों को प्रिंट करता है:
hello world
this is something something
something else
उन फ़ाइलों को प्रिंट करने के लिए जिनमें extends SomethingSomething
कहीं भी नहीं है , -L
विकल्प का उपयोग करें :
grep -L -E 'extends[[:space:]]+SomethingSomething' FILENAME…
Grep के कुछ संस्करणों में -L
विकल्प नहीं है (यह POSIX द्वारा निर्दिष्ट नहीं है )। यदि आपका नहीं है, तो इसका कुछ भी प्रिंट नहीं है, और रिटर्न कोड का उपयोग कॉलिंग शेल को करने के लिए करें जो इसके बजाय करना चाहिए।
grep -q -E 'extends[[:space:]]+SomethingSomething' FILENAME ||
echo "$FILENAME"
वैकल्पिक रूप से, awk का उपयोग करें।
awk '
FNR == 1 && NR != 1 && !found { print fn }
FNR == 1 { fn = FILENAME; found = 0; }
/extends[[:space:]]+SomethingSomething/ { found = 1 }
END { if (fn != "" && !found) print fn }
'
Linux या Cygwin (या GNU grep के साथ अन्य प्रणाली) पर, आपको उपयोग करने की आवश्यकता नहीं है find
, जैसा grep
कि पुनरावृत्ति करने में सक्षम है।
grep -R --include='*.java' -L -E 'extends[[:space:]]+SomethingSomething'
यदि आपका खोल ksh या bash या zsh है, तो आप शेल को फ़ाइल नाम मिलान कर सकते हैं। बैश पर, set -o globstar
पहले चलाएं (आप इसे अपने में डाल सकते हैं ~/.bashrc
)।
grep -L -E 'extends[[:space:]]+SomethingSomething' **/*.java