Regex: todas as letras em grego com 5 letras únicas (o que significa que cada letra aparece apenas uma vez)

2

Outra que não consigo resolver: todas as letras em grego com 5 letras únicas (o que significa que cada letra aparece apenas uma vez).

minha solução:

egrep '(.)([^/1])([^/1/2])([^/1/2/3])([^/1/2/3/4])' greek.txt

Então, o que eu acho que estou dizendo:

  • corresponde a qualquer primeiro caractere

  • todos os caracteres consecutivos não podem ser nenhum dos padrões anteriores

Mas o que sai:

alpha
gamma
delta
epsilon
theta
kappa
lambda
omicron
sigma
upsilon
omega

Alfa, gama, eles têm caracteres que não são exclusivos. Alguma dica ou dicas sobre o que estou fazendo errado?

    
por Lucas Kauffman 08.08.2011 / 13:54

2 respostas

2

  • Use um grep para filtrar todas as linhas com comprimento! = 5.
  • Use o segundo grep para filtrar todas as palavras, onde qualquer caractere se repete.

egrep '^.{5}$' greek.txt | egrep -v '^.*(.).*.*$'

Obrigado a @StephaneChazelas por apontar as otimizações em um comentário:

grep -x '.\{5\}' | grep -v '\(.\).*'

    
por 17.08.2015 / 10:56
1

Eu acho que você está no caminho certo, mas fez com que os cortes fossem errados. Use não /1 !

    
por 08.08.2011 / 14:35