如何在名称中查找带方括号的文件

lel*_*uch 5 regex linux find

我试图找到一些方括号的文件,但我似乎无法让它工作.

我的文件命名如下:

[ABC] test file.txt

Regexp我正在尝试:

find . -iregex '\[abc\].*test.*'
Run Code Online (Sandbox Code Playgroud)

这似乎不是出于某种原因.如果我用 - 替换它 -

find . -iregex '.*abc.*test.*'
Run Code Online (Sandbox Code Playgroud)

- 工作正常.所以问题在于方括号.有任何想法吗?

anu*_*ava 5

没有匹配的方括号不是问题.问题是匹配文件的路径.记住find的输出以./当前路径开头.

所以你的find命令中的这个正则表达式对你有用:

find . -iregex '\./\[abc\].*test.*'
Run Code Online (Sandbox Code Playgroud)

  • 我知道SO ettiquette,我在问题解决后很快就睡了:p (2认同)