zsh globbing ifadelerini nasıl doğru bir şekilde reddedebilirim?


18

Tüm dosyaları listelemek istiyorum ama owp ile bitenler: Bu yüzden denedim:

  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

hiçbiri işe yaramadı. Bunu nasıl doğru bir şekilde yapabilirim? Benim .zshrc "set genişletilmiş glob".

Yanıtlar:


27

Bunlardan birini deneyin:

ls -l ^*.owp

(ör. kalıp dışındaki herhangi bir şeyle eşleşir *.owp)

veya:

ls -l *~*.owp

(örneğin, kalıpla eşleşen, *ancak eşleşmeyen herhangi bir şeyle eşleştirin *.owp)

Bununla ilgili daha fazla bilgi için bkz. man zshexpn=> FILENAME GENERATION=> Glob Operators.


Glob ()modellerine eklenen glob niteleyicileri, glob operatörü istersiniz.

Ne *.(^owp)yapar:

  1. Nokta ile biten tüm dosya adlarını eşleştir
  2. onlar boru değilse (^p), ve
  3. eşleşmeleri (o)" w" => "bilinmeyen sıralama düzenleyicisi " ne göre sırala

Bununla ilgili daha fazla bilgi için bkz. man zshexpn=> FILENAME GENERATION=> Glob Qualifiers.


1
^ *. owp işi yaptı. whooa, *. (^ owp) gerçekten ne yapar :)
matematik

9
Bunu çalıştıramayan herkes için, extendedglobseçeneği Zsh'de ayarlamanız gerekir .
DBedrenko

7
@DBedrenko: teşekkürler! Not: viasetopt extendedglob
Thomas M

1
Bulduğum bu glob elemeleri ilgilenen herkes için hızlı bir özet olarak yararlı.
wardw
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.