Как вывести список имен файлов с общим количеством букв X

Скажем, у меня есть список следующих файлов в моем текущем каталоге:

lab1.javmytst2pie.cprog2.ctst3.extst5:5.tlab2javlab2jav.extnew.cprog1.ctst1tst4.exс tst6:6123.tA7-tst.cfred.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]*$'
Другие вопросы по тегам