如何列出目录中以字符开头但文件名后跟 8 个小写字符的文件?

How to list files in a directory that begin with a character but the filename is then followed by 8 lower-case characters?

从 Linux CLI,使用 bash shell,如何列出文件(使用 ls 命令)在所需文件名都以字符 P 开头但文件名的其余部分后跟 8 个小写字符的目录中? 尝试了以下但它不起作用。

ls -las P[a-z]{8}

示例目录将包含如下文件:

Pasdfghjk    
Pqwertyui    
Pabcd    
Pads

其中只有前两个文件需要 listed/returned 到 STDOUT。 如果 ls 命令不能执行此操作,那么什么命令或命令序列可以?

Bash glob 没有有限重复运算符 ({8}),即使启用了 extglob

所以你可以通过管道 lsgrep:

ls -ls | grep -E 'P[a-z]{8}$'

(这并不完美,因为它会匹配以模式结尾的文件名。但这在您的情况下可能并不重要。)

或者您可以手动扩展 glob:

ls -ls P[a-z][a-z][a-z][a-z][a-z][a-z][a-z][a-z]

使用 GNU 查找:

find . -maxdepth 1 -regextype sed -regex './P[a-z]\{8\}' -printf "%f\n"