मैं सही ढंग से zsh ग्लोबिंग भावों को कैसे नकार सकता हूं?


18

मैं सभी फाइलों को सूचीबद्ध करना चाहता हूं, लेकिन वे जो उल्लू के साथ समाप्त होती हैं: इसलिए मैंने कोशिश की:

  ls -l *.(^owp)
  zsh: unknown sort specifier
  ls -l *(^owp) 
  zsh: unknown sort specifier
  ls -l *[^o][^w][^p] # does not work either, missing some files

किसी ने काम नहीं किया। मैं इसे सही तरीके से कैसे करूं? मेरे .zshrc ने "सेट एक्सटेंडब्लो" रखा है।

जवाबों:


27

या तो आज़माएँ:

ls -l ^*.owp

(यानी पैटर्न के अलावा कुछ भी मैच *.owp)

या:

ls -l *~*.owp

(यानी ऐसी किसी भी चीज़ से मेल खाएं जो पैटर्न से मेल खाती है *लेकिन मेल नहीं खाती *.owp)

इस पर अधिक के लिए man zshexpn=> FILENAME GENERATION=> देखें Glob Operators


संलग्न ()जबकि आप एक ग्लोब ऑपरेटर चाहते ग्लोब पैटर्न में, ग्लोब क्वालिफायर के लिए कर रहे हैं।

क्या *.(^owp)है:

  1. एक डॉट के साथ समाप्त होने वाले सभी फ़ाइल नामों का मिलान करें
  2. अगर वे पाइप नहीं हैं (^p), और
  3. (o)" w" => "अज्ञात सॉर्ट स्पेसियर" द्वारा मैचों को क्रमबद्ध करें

इस पर अधिक के लिए man zshexpn=> FILENAME GENERATION=> देखें Glob Qualifiers


1
^ *। उल्लू ने काम किया। whooa, किस * के लिए। (^ उल्लू) वास्तव में करता है :)
गणित

9
जो कोई भी इस काम के लिए नहीं मिल सकता है, उसके लिए आपको extendedglobZsh में विकल्प सेट करना होगा।
DBedrenko

7
@DBedrenko: धन्यवाद! NB: के माध्यम से कियाsetopt extendedglob
थॉमस एम

1
ग्लोब क्वालिफायर में रुचि रखने वाले किसी भी व्यक्ति के लिए मुझे यह एक त्वरित सारांश के रूप में उपयोगी लगा।
वार्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.