列出文件名中不包含模式的文件(仅限zsh)
假设我在dir中有一个文件列表,如下所示:列出文件名中不包含模式的文件(仅限zsh),zsh,Zsh,假设我在dir中有一个文件列表,如下所示: 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
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
我如何指定排除模式来显示除以下文件之外的所有文件
是否在文件名的任何位置包含粘合在一起的字符
因此,在结果列表中,文件:
blackneasy-sq.png
pick-sq.png
brick-sq.png
不应显示
我试过了,但没有成功
print -l [[:alpha:]]*^ck*.*
使用
~
运算符:THIS~
匹配与模式THIS
匹配的文件,而不是THIS
。这需要extended_glob
选项(该选项在某些上下文中自动打开,如完成功能,但不是默认状态)
您可以将*~THAT
缩写为^THAT
(也需要扩展的\u glob
),因此如果您不想限制为.png
文件,可以使用
print -l -- ^*ck*
使用
~
运算符:THIS~
匹配与模式THIS
匹配的文件,而不是THIS
。这需要extended_glob
选项(该选项在某些上下文中自动打开,如完成功能,但不是默认状态)
您可以将*~THAT
缩写为^THAT
(也需要扩展的\u glob
),因此如果您不想限制为.png
文件,可以使用
print -l -- ^*ck*
有没有办法让
[[:alpha:]
不急于使用*
或#
或者它总是尽可能多地消耗@布兰基多和布兰基托总是渴望成功。但是,只有当你有了capture group,而不仅仅是regex匹配时,渴望才是重要的。同样好奇的是,如果不是因为THIS~ THAT
,有没有可能在没有grep或其他什么帮助的情况下以其他方式实现这一点?Thanks@branquitogrep
将很难使用,除非您知道您的文件名不能包含任何特殊字符。执行此操作的简单方法是*.png中x的;*ck*)中的“$x”是否继续;;以撒;{进程$x};完成
@branquito[[:alpha:][]*^ck
匹配任何以字母开头并以非字母结尾的内容。由于ck
可以与*
匹配,[:alpha:]*^ck
匹配任何以字母开头的内容。渴望也无济于事:他们仍然允许明星想匹配多久就匹配多久,当有几种可能的匹配方式时,渴望只是一种偏好。有没有办法让[:alpha:]
不渴望*
或#
或者总是尽可能多地消耗呢@布兰基多和布兰基托总是渴望成功。但是,只有当你有了capture group,而不仅仅是regex匹配时,渴望才是重要的。同样好奇的是,如果不是因为THIS~ THAT
,有没有可能在没有grep或其他什么帮助的情况下以其他方式实现这一点?Thanks@branquitogrep
将很难使用,除非您知道您的文件名不能包含任何特殊字符。执行此操作的简单方法是*.png中x的;*ck*)中的“$x”是否继续;;以撒;{进程$x};完成
@branquito[[:alpha:][]*^ck
匹配任何以字母开头并以非字母结尾的内容。由于ck
可以与*
匹配,[:alpha:]*^ck
匹配任何以字母开头的内容。渴望也无济于事:他们仍然允许明星想匹配多久就匹配多久,当有几种可能的匹配方式时,渴望只是偏好的问题。