如何列出总共 X 个字母的文件名

如何列出总共 X 个字母的文件名

假设我当前目录中有以下文件列表:

lab1.jav mytst2 pie.c prog2.c tst3.ex tst5:5.tlab2jav lab2jav.ext new.c prog1.c tst1 tst4.exC tst6:6123.tA7-tst.c fred.txt

我需要列出总共有 7 个字母的文件。你会怎么做?我试过,但没有成功:

ls | egrep -i '[a-z]{7}'

我认为这是因为点挡住了路,有没有简单的方法可以做到这一点?

答案1

可以这样做:

ls | grep -E '^(\W*[0-9]*[a-zA-Z]){7}\W*[0-9]*$'

这包括第一个和最后一个字符是数字或非字母数字字符的情况。

或者更短

ls | grep -Ei '^([^a-z]*[a-z]){7}[^a-z]*$'

相关内容