Você precisará citar a expressão do shell:
grep -i '^[^aeiou][aeiou]*$' /usr/share/dict/words
Se você não fizer isso, os padrões podem ser expandidos para nomes de arquivos que existem no diretório atual. Além disso, como você inseriu um espaço entre as duas partes do padrão, grep
pensará que a segunda parte é um nome de arquivo que deve ser pesquisado (você receberá um erro "Nenhum arquivo ou diretório").
O arquivo /usr/share/dict/words
tem uma palavra por linha, portanto, você pode usar -x
e remover as âncoras da expressão, se desejar:
grep -ix '[^aeiou][aeiou]*' /usr/share/dict/words
Com -x
, grep
só retornará correspondências que abranjam toda a linha.
Se você exigir uma vogal (o acima pode retornar palavras consonantais únicas, pois [aeiou]*
corresponde à string vazia):
grep -ix '[^aeiou][aeiou][aeiou]*' /usr/share/dict/words
ou
grep -Eix '[^aeiou][aeiou]+' /usr/share/dict/words