zshグロビング式を正しく無効にするにはどうすればよいですか?


18

owpで終わるファイル以外のすべてのファイルをリストしたい:したがって、私は試しました:

  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には「set extendedglob」があります。

回答:


27

どちらかを試してください:

ls -l ^*.owp

(つまり、パターン以外のものに一致する*.owp

または:

ls -l *~*.owp

(つまり、パターンに一致する*が一致しないものに一致する*.owp

これについての詳細はman zshexpn=> FILENAME GENERATION=> Glob Operatorsをご覧ください。


()globパターンには、glob修飾子が追加されますが、glob演算子が必要です。

*.(^owp)が:

  1. ドットで終わるすべてのファイル名に一致
  2. パイプ(^p)ではない場合、および
  3. (o)w」=>「不明なソート指定子」で一致をソートします

これについての詳細はman zshexpn=> FILENAME GENERATION=> Glob Qualifiersをご覧ください。


1
^ *。owpが仕事をしました。whooa、何のために*。(^ owp)は本当に:)
数学

9
これが機能しないextendedglob場合は、Zshでオプションを設定する必要があります。
DBedrenko

7
@DBedrenko:ありがとう!NB:終了setopt extendedglob
トーマスM

1
これは、glob修飾子に興味がある人のための簡単な要約として有用だと思いました。
ワード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.