在/ tmp目录下我有以下文件
file1
file2
当我使用-regex运行以下find命令时,find命令与文件不匹配 为什么呢?
find /tmp -regex '/file(\d{1,3})/'
答案 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中用作赋值。