假设我当前目录中有以下文件列表:
lab1.jav
mytst2
pie.c
prog2.c
tst3.ex
tst5:5.tlab2jav
lab2jav.ext
new.c
prog1.c
tst1
tst4.ex
C 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]*$'