列出文件名中任何位置不包含模式的文件(仅限 zsh)
list files that do not contain pattern anywhere in filename (zsh only)
假设我在目录中有一个文件列表,如下所示:
blackneasy-sq.png
dima-sq.png
envoy-sq.png
fox-sq.png
freeze-sq.png
ministarstvo kulture-sq.png
naxi-sq.png
pick-sq.png
pink-sq.png
wink-sq.png
brick-sq.png
rider-sq.png
sixt-rent-a-car.png
slavija hotel-sq.png
temet-sq.png
tepe-sq.png
我如何指定排除模式以显示所有文件,除了那些
在文件名的任何地方包含 ck
个粘在一起的字符?
因此在结果列表中,文件:
blackneasy-sq.png
pick-sq.png
brick-sq.png
不应显示。
我试过了没有成功。
print -l [[:alpha:]]*^ck*.*
使用~
运算符:<em>THIS</em>~<em>THAT</em>
匹配的文件匹配模式 <em>THIS</em>
但不匹配 <em>THAT</em>
。这需要 extended_glob
选项(在某些上下文中自动打开,例如完成功能,但不是默认状态)。
print -l -- *.png~*ck*
您可以将 *~<em>THAT</em>
缩写为 ^<em>THAT</em>
(也需要extended_glob
),所以如果你不想限制为.png
个文件,你可以使用
print -l -- ^*ck*
假设我在目录中有一个文件列表,如下所示:
blackneasy-sq.png
dima-sq.png
envoy-sq.png
fox-sq.png
freeze-sq.png
ministarstvo kulture-sq.png
naxi-sq.png
pick-sq.png
pink-sq.png
wink-sq.png
brick-sq.png
rider-sq.png
sixt-rent-a-car.png
slavija hotel-sq.png
temet-sq.png
tepe-sq.png
我如何指定排除模式以显示所有文件,除了那些
在文件名的任何地方包含 ck
个粘在一起的字符?
因此在结果列表中,文件:
blackneasy-sq.png
pick-sq.png
brick-sq.png
不应显示。
我试过了没有成功。
print -l [[:alpha:]]*^ck*.*
使用~
运算符:<em>THIS</em>~<em>THAT</em>
匹配的文件匹配模式 <em>THIS</em>
但不匹配 <em>THAT</em>
。这需要 extended_glob
选项(在某些上下文中自动打开,例如完成功能,但不是默认状态)。
print -l -- *.png~*ck*
您可以将 *~<em>THAT</em>
缩写为 ^<em>THAT</em>
(也需要extended_glob
),所以如果你不想限制为.png
个文件,你可以使用
print -l -- ^*ck*