如何在find命令中使用正则表达式?

时间:2016-06-30 13:27:01

标签: regex find

我有一个这样的find命令:

find /root/newdir/ -mindepth 1 -maxdepth 1 -type f

输出如下:

/root/newdir/test.log
/root/newdir/test2.log
/root/newdir/tmp_test3.log
/root/newdir/test.zip

我需要找到以test开头并结束.log的文件。有时我也需要复杂的正则表达式。我尝试-regex这样的例子,但不起作用:

find /root/newdir/ -mindepth 1 -maxdepth 1 -type f -regex "^test*.log$"

如何在find命令中使用^ $字符等正则表达式?

1 个答案:

答案 0 :(得分:2)

由于输出是/path/to/file/test2.log,例如你不能使用^,因为行的开头应该是/ path / to / file。

在这种情况下,您可以做的是:

find . -mindepth 1 -maxdepth 1 -type f -regex ".*/temp[^\/]*log$"

现在你只能在最后一个/所需的正则表达式后找到文件。