複数のファイルを含むディレクトリがあります。
$ ls tdir
xx yy zz
zsh
Exceptで拡張されるグローバルパターンを探していますxx
。私が試したことは次のとおりです。
$ set -o EXTENDED_GLOB
$ echo tdir/*~xx
tdir/xx tdir/yy tdir/zz
ご覧のとおり、これは機能しません。*~xx
期待どおりに拡張されません。これを正しく書くにはどうすればよいですか?
答え1
(and-not) 演算子は、glob~filter
フィルタを全グロブ結果の否定パターンマッチングとして適用します。
これにより、次のような作業が可能になります。
grep foo ./**/*~*/.svn/*(.mh-1)
例えば。
これには次のものが必要です。
echo tdir/*~tdir/xx
または:
echo tdir/*~*/xx
または:
echo tdir/(*~xx)
または^
代わりに否定演算子を使用してください。
echo tdir/^xx