在 /usr/include 中查找至少有一个数字的文件

Find file with at least one number in /usr/include

使用find命令,我想查看/usr/include中名称包含at least one number的文件。

我试过这个命令:

find /usr/include -type f -regex '.\*[0-9].\*$'

但数字并不总是在文件名中,有时在路径中。例如 /usr/include/linux/netfilter_ipv4/ipt_ah.h 被发现。

之后,我尝试了这个命令:

find /usr/include -type f -regex '/[^\/]*[0-9][^\/]*$'

但它returns没什么。

我该如何解决这个问题?

如果您使用 -name 测试而不是 -regex 测试,它将只匹配文件名,忽略前面的目录 (see the man page)。请注意 -name 使用 shell 模式而不是正则表达式模式,因此语法略有不同。您可以使用此命令查找文件名中包含数字的文件:

find /usr/include -type f -name '*[0-9]*'

使用正则表达式本身:

find /usr/include/ -type f -regex ".*/[^/]*[0-9][^/]*"

在这里,我们在文件名中的最后一个 / 之后寻找至少 1 个数字。