我需要找到具有以下文件名的文件:
<some regex-matched text> (1).<some regex-matched text>
即我想搜索包含
的文件名- 以空格结尾的文本
- 然后用左括号(括号)
- 后跟数字1
- 后跟右括号
- 可能后跟一个圆点,后面再加上一些文字...
我首先去了find . -regex '.* \(1\)\..*'
。但是括号被忽略了:返回与.* 1\..*
匹配的文件。
在尝试寻找答案的过程中,我发现this page涵盖Linux find
。在这里我找到了这个短语:
”分组时,反斜杠后加括号“ \(”, ‘\)’。”
[NB为您显示一个反斜杠,如该页面所示,我将反斜杠加倍以在上面编写单个反斜杠!]
我不确定该怎么做,即在这种情况下如何逃避普通括号。我认为将find
表达式中的反斜杠加倍也许可行,但没有成功。
即使我尝试不使用正则表达式也执行此操作,find
似乎在此位置的括号和/或点也有问题:
mike@M17A .../accounts $ find . -name *(1).pdf
[... finds stuff OK]
mike@M17A .../accounts $ find . -name *(1).*
find: paths must precede expression: ..
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec|time] [path...] [expression]
mike@M17A .../accounts $ find . -name *(1)\.*
find: paths must precede expression: ..
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec|time] [path...] [expression]
在这些尝试中,在初始*后面加上空格也会失败...