查找和正则表达式

Sardathrion-防止SE滥用

我用这个查找表达式做错什么了?

; touch ook ooks
; find . -name 'ook' -or -name 'ooks' -type f
./ook
./ooks
; find . -name 'ook[s]?' -type f      
[returns nothing]
; echo $?
0
案件

您将正则表达式与shell搜索模式混淆了。

在外壳中表示任何单个字符。

在regexp中,前一个字符(或子模式)是可选的。

尝试:

find . -regex '.*ooks?' -type f

从查找手册页:

       -regex模式
              文件名与正则表达式模式匹配。这是
              整个路径上的匹配项,而不是搜索。例如,要匹配
              名为“ ./fubar3”的文件,可以使用正则表达式“。* bar”。
              “。* b。* 3”,但不包含“ f。* r3”。
              默认情况下,find可以理解的正则表达式是Emacs正则表达式,但是可以
              使用-regextype选项进行更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章