查找具有可变字符数的文件名

时间:2015-06-29 09:36:39

标签: linux find

使用Ubuntu。

我有一个目录,有一些子目录,可能有一些文件的名称格式如下: core.foo.1234 core.bar.65432

所以,他们都以“核心”开头。然后是一个进程名称,然后是PID号,通常是4或5位数。

我的基于Python的工具使用两个'find'命令来查找它们,如下所示:

the_cmd4 = "find " + directory_name + " -name \"core\.*\.[0-9][0-9][0-9][0-9]\"";

the_cmd5 = "find " + directory_name + " -name \"core\.*\.[0-9][0-9][0-9][0-9][0-9]\"";

所以,这基本上就像这样调用'find'工具:

找到。 -name“core。*。[0-9] [0-9] [0-9] [0-9]”

必须有一种方法可以指定具有可变数量的数字字符的“查找” - 而不是分两步完成。

有吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

PID是16位值,意味着它可以包含1到5位数字。您可以使用-regex代替-name

find FOLDER -regextype sed -regex '.*core\.[0-9]\{1,5\}

答案 1 :(得分:1)

我认为您可以使用支持更强大的RE的grep再次过滤:

find . -name "core*" | grep "core.*.[0-9]\+"