我正在尝试查找文件名中只包含数字的文件。例如,如果我有文件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]+$'
感到困惑。
答案 0 :(得分:2)
要么:
$ find -E . -type f -regex '.*/[[:digit:]]+$'
或者这个:
$ find . -type f -name '[[:digit:]]*' | grep -E '.*/[0-9]+$'
查找名称完全由数字组成的文件(即没有扩展名)