여러 파일이 포함된 디렉터리가 있습니다.
$ 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
필터를 전체 glob 결과에 대한 부정 패턴 일치로 적용합니다.
이를 통해 다음과 같은 작업이 가능해집니다.
grep foo ./**/*~*/.svn/*(.mh-1)
예를 들어.
여기에는 다음이 필요합니다.
echo tdir/*~tdir/xx
또는:
echo tdir/*~*/xx
또는:
echo tdir/(*~xx)
또는 ^
대신 부정 연산자를 사용하세요.
echo tdir/^xx