Não, não está correto. Eu não tenho idéia do que o {3}
é suposto ser, mas é isso que está causando problemas. Se você quiser encontrar linhas que contenham três caracteres repetidos seguidos por três outros caracteres repetidos, você pode usar isto:
grep -E '([a-z]){2}([a-z]){2}'
O refere-se ao primeiro grupo capturado . Você pode capturar grupos usando parênteses. Então,
é o primeiro grupo e
é o segundo e assim por diante. Como você não tinha grupos capturados,
grep
estava reclamando de uma referência inválida, pois não tinha nada a que se referir. Então, no regex acima, os parênteses estão capturando os dois grupos. Em seguida, você deseja {2}
e não {3}
, pois a correspondência inicial também é contada.
Você não especifica se precisa que a correspondência seja uma palavra ou se também deseja corresponder dentro de palavras. Se você quiser que a palavra inteira corresponda (e exclua itens como aaaabbb
, use isso:
grep -wE '([a-z]){2}([a-z]){2}'
Para imprimir apenas a parte correspondente da linha (a palavra) e não a linha inteira, use (apenas grep do GNU):
grep -owE '([a-z]){2}([a-z]){2}'