如何查找由 4 个或 5 个字符组成的文件名?
对于 4 个字符的文件名,我可以使用find . -name ????.tgz,但是如何将其扩展为 4 或 5 的长度?
如何查找由 4 个或 5 个字符组成的文件名?
对于 4 个字符的文件名,我可以使用find . -name ????.tgz,但是如何将其扩展为 4 或 5 的长度?
这是一种解决方案:
find . \( -name "????.cpp" -o -name "?????.cpp" \)
-o用于逻辑或
只需替换.cpp或.tgz任何你想要的。还有这个正则表达式版本可以做同样的事情:
find . -regextype posix-egrep -regex '^./[a-zA-Z]{4,5}\.cpp$'
在正则表达式^中是开始符号^./意味着以./. [a-zA-Z]{4,5}表示后跟 4 到 5 个字符,\.表示. \转义字符在哪里\.cpp$意味着以.cpp
如果文件名包含数字而不是[a-zA-Z]do [a-zA-Z0-9]。所以它看起来像这样:
find . -regextype posix-egrep -regex '^./[a-zA-Z0-9]{4,5}\.cpp$'
你可以使用这个find命令:
find -type f -regextype egrep -regex ".*/[^./]{4,5}\.[^./]+$"
正则表达式设置为捕获任何具有 4 或 5 个字符的基本名称文件。请注意,此正则表达式适用于全名,包括路径。