我想找到名称如...(1-9)...
的文件find . -regex '.*/.*\([1-9]\).*'
我首先使用这个,但似乎在他们的路径中给我所有文件1-9。 我试试
find . -regex '.*/.*([1-9]).*'
它有效。但我不知道为什么。我记得在正则表达式中,括号表示一个表达式?或者你想稍后使用类似\ 1,\ 2引用它?这就是我使用反斜杠来逃避它的原因。
任何人都可以帮助我吗? THX
抱歉,我在这里迷惑吗?我想要像书(1).pdf而不是book1.pdf 。 [1-9]。不可行?答案 0 :(得分:0)
你需要使用否定的char类。
find . -regex '.*/[^/]*\([1-9]\)[^/]*$'
答案 1 :(得分:0)
您甚至不需要find
。只需使用glob表达式匹配([1-9)
模式:
printf "%s\n" *\([1-9]\)*
请注意,这将列出名称为([1-9])
的当前路径中的所有文件和子目录。
如果您只想列出具有此模式的文件,请使用:
find . -maxdepth 1 -name '*([1-9])*' -type f