जवाबों:
कमांड-लाइन विकल्प का उपयोग करें -vया --invert-match,
ls -R |grep -v -E .*[\.exe]$\|.*[\.html]$
grep -v
या
grep --invert-match
तुम भी एक ही काम कर सकते हैं find:
find . -type f \( -iname "*" ! -iname ".exe" ! -iname ".html"\)
अधिक जानकारी यहाँ ।
findआदेश इस XY समस्या का सबसे अर्थ समाधान है। संयोजन lsऔर grepइस उद्देश्य के लिए सबसे अच्छा लगता है। यह स्वीकृत उत्तर होना चाहिए। (+1)
परिणामों को पलटने के -vलिए अपने grepकमांड में विकल्प जोड़ें ।
grep "subscription" | grep -v "spec"
-v/--invert-matchआवश्यक रूप से फ्लिप नहीं होगा कि क्या रिटर्न कोडgrepसफल निष्पादन को इंगित करता है, लेकिन इसके बजाय लाइनों से मेल खाएगा जो अन्यथा मेल नहीं खाएंगे। जो लोग रिटर्न कोड को उल्टा करना चाह रहे हैं (अर्थात यदि सभी लाइनें पैटर्न से मेल नहीं खाती हैं, तो कम से कम एक का उपयोग करना चाहिए)! grep। यह सशर्त अभिव्यक्तियों में उपयोग करता है, जैसेif ! ls | grep -qE ".(\.exe)$"; then echo No .exe files in $(pwd); fi:।