找到-regex标志来匹配文件

时间:2010-07-02 11:33:13

标签: regex linux find

在/ tmp目录下我有以下文件

 file1
 file2

当我使用-regex运行以下find命令时,find命令与文件不匹配 为什么呢?

  find /tmp  -regex '/file(\d{1,3})/'

2 个答案:

答案 0 :(得分:2)

来自man find页面:

  

-regex模式

     

文件名与正则表达式匹配。这是整个路径上的匹配,而不是搜索。例如,要匹配名为./fubar3的文件,您可以使用正则表达式.*bar..*b.*3,但不能使用f.*r3

此外,似乎不支持\d{m,n}。以下作品:

find /tmp -regex ".*file[0-9]+$"

答案 1 :(得分:0)

我认为它是unix。      find /tmp -type f -exec grep -il "whatever_you_want_in_file" {} \; 以递归方式搜索/ tmp中的条目 但你可能想要      ls -a | grep file[0-9][0-9]?[0-9]? 仅适用于/ tmp或      find /tmp -regexp "file[0-9][0-9]?[0-9]?" 并非所有的shell都支持\ d作为一位数的外卡,也不需要/。我知道它在Perl中用作赋值。