Faire :
sed -E 's/\b([[:alpha:]])\1{1,4}\b/word/g'
-
\b
correspond à la limite de mot
-
([[:alpha:]])
correspond à n'importe quel caractère alphabétique dans la locale actuelle, et le place comme groupe capturé 1
-
\1{1,4}
correspond au groupe capturé 1 répété de 1 à 4 fois, c'est-à-dire au total, le caractère est recherché 2 à 5 fois
-
si une correspondance est trouvée, le mot est remplacé par la chaîne word
-
le modificateur g
de la substitution (s
) remplace toutes ces occurrences de mots
Pour rechercher n'importe quel caractère, pas seulement alphabétique, remplacez [[:alpha:]]
par .
:
sed -E 's/\b(.)\1{1,4}\b/word/g'
Exemple :
$ echo 'a aa aaa aaaa aaaaa aaaaaa' | sed -E 's/\b([[:alpha:]])\1{1,4}\b/word/g'
a word word word word aaaaaa