Listar arquivos que não possuem certas letras nos dois primeiros caracteres

1

Eu preciso listar nomes de arquivo que tenham pelo menos dois caracteres e não possuam as seguintes letras nos dois primeiros caracteres. As letras são abcfghxyz

Até agora eu tenho:

ls | grep -v '^[abcfghxyz]'

Isso está verificando se o arquivo não contém uma dessas letras no começo.

Mas como faço para verificar os dois primeiros caracteres e o arquivo com pelo menos dois caracteres.

    
por shawn edward 05.03.2016 / 21:53

2 respostas

4

Você nem precisa de grep para isso:

ls -1d [^abcfghxyz][^abcfghxyz]*

Isso usa a opção ls -1 para obter um nome de arquivo por linha em vez de saída colunar, e a opção -d para impedir que ls liste o conteúdo de quaisquer subdirectores que correspondam ao glob.

Outra alternativa é usar find (para que você possa limitar explicitamente a saída para arquivos regulares e não para diretórios ou links simbólicos, etc.):

find . -maxdepth 1 -type f -name '[^abcfghxyz][^abcfghxyz]*'
    
por 05.03.2016 / 23:36
2
ls | grep .. | grep -v '^[abcfghxyz][abcfghxyz]'
    
por 05.03.2016 / 22:28

Tags