Como listar nomes de arquivos com um total de X letras

0

Digamos que eu tenha uma lista dos seguintes arquivos no meu diretório atual:

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

E eu preciso listar os arquivos com um total de 7 letras, por exemplo. Como você faria isso? Eu tentei sem sucesso:

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

Eu acho que é porque os pontos estão no caminho, existe uma maneira simples de fazer isso?

    
por Sammy Guergachi 21.02.2016 / 23:20

1 resposta

1

Isso pode ser feito assim:

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

Isso inclui casos em que o primeiro e o último caractere são um dígito ou um caractere não alfanumérico.

Ou mais curto

ls | grep -Ei '^([^a-z]*[a-z]){7}[^a-z]*$'
    
por Pilot6 21.02.2016 / 23:30