使用find匹配以number开头的文件名

时间:2016-01-27 17:13:53

标签: regex linux find digits

我正在尝试查找文件名中只包含数字的文件。例如,如果我有文件123.txt,45.doc,alpha_123,beta_123.txt,45和123,我只想匹配文件45和123.我尝试了find和{{{{{} 1}}或它们的组合,但没有任何工作,因为我想要或给我语法错误。

还有可能我只能匹配空文件吗?我尝试使用选项"空"但也没有成功,虽然这可能是因为使用了错误的语法。

grep 有效,因为它在文件名中找到了包含数字的文件,例如文件123和文件45,但它也找到了带扩展名的文件,例如123.txt和45.doc,不幸的是这不是我想要的。

根据以下建议(因为我的原始问题在发布答案后进行了大量编辑),完全符合我的要求的是find . -name "[0-9]*"

我为最初的误导性/含糊不清的帖子道歉,我希望编辑后的版本对其他用户也很有帮助,他们也对如何使用正则表达式$ find . -type f -name '[[:digit:]]*' | grep -E '.*/[0-9]+$'感到困惑。

1 个答案:

答案 0 :(得分:2)

要么:

$ find -E .  -type f -regex '.*/[[:digit:]]+$'

或者这个:

$ find .  -type f -name '[[:digit:]]*' | grep -E '.*/[0-9]+$'

查找名称完全由数字组成的文件(即没有扩展名)