Как вывести список имен файлов с общим количеством букв X
Скажем, у меня есть список следующих файлов в моем текущем каталоге:
lab1.jav
mytst2
pie.c
prog2.c
tst3.ex
tst5:5.tlab2jav
lab2jav.ext
new.c
prog1.c
tst1
tst4.ex
с 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]*$'