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]*'