encontre palavras com todas as vogais na ordem de um arquivo

6

Eu tenho um grande arquivo de dicionário com mais de 300.000 palavras e estou tentando encontrar todas as palavras com as vogais nesta ordem e tenho exatamente exatamente 5 vogais. Minha tentativa atual não parece estar funcionando e, para minha vida, não entendo o porquê.

less mywords | grep -iE [^aeiou]*a[^aeiou]*e[^aeiou]*i[^aeiou]*o[^aeiou]*u[^aeiou]*

Eu acho que é todas as palavras que estou procurando, mas há algumas palavras que aparecem que eu não consigo me livrar.

abstemiousnesses
ultraserious

Existem alguns outros, mas eles estão na mesma linha. Curiosamente, mesmo se eu adicionar algo como [^u]* à frente, ultraserious continuará aparecendo! Qualquer solução ficaria bem, no entanto, eu gostaria que ela fosse restrita ao grep, como nos foi dito que pode ser feito usando apenas grep.

    
por Achaldo 08.08.2014 / 09:07

1 resposta

12

Você não está ancorando a expressão. Pode combinar no meio, então quaisquer vogais "fora" do seu jogo são permitidas.

Adicione um ^ e $ para evitar isso.

$ echo abstemiousnesses | grep -iE '[^aeiou]*a[^aeiou]*e[^aeiou]*i[^aeiou]*o[^aeiou]*u[^aeiou]*'
abstemiousnesses
$ echo abstemiousnesses | grep -iE '^[^aeiou]*a[^aeiou]*e[^aeiou]*i[^aeiou]*o[^aeiou]*u[^aeiou]*$'
    
por 08.08.2014 / 09:17