使用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]”必须有一种方法可以指定具有可变数量的数字字符的“查找” - 而不是分两步完成。
有吗?
提前致谢。
答案 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]\+"