Как вывести список имен файлов с общим количеством букв 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]*$'