मैं सही ढंग से 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.