Angenommen, Ihre grep
Version unterstützt -o
und -w
Optionen
-o, Drucken nur die angepassten (nicht leer) Teile einer Anpassungsleitung, wobei jedes dieser Teile an einem separaten Ausgang Linie --only Anpassungs.
-w, --word-regexp Wählen Sie nur die Zeilen aus, die Übereinstimmungen enthalten, die ganze Wörter bilden. Der Test ist, dass der übereinstimmende Teilstring entweder am Anfang der Zeile sein muss oder vor einem Nicht-Wort Bestandteilzeichen steht. In ähnlicher Weise muss es entweder am Ende der Zeile oder gefolgt von einem Nichtwort-Bestandteilzeichen stehen. Wortbestandteile sind Buchstaben, Ziffern und der Unterstrich.
egrep
ist, soweit ich weiß, ist veraltet und grep -E
entsprechen
-o
Option OP Versuch sowie -w
Hinzufügen von passendem Teil des Wortes
$ grep -owE '(.)\1\1{2,4}' ip.txt
aaaaa
aaaaaa
Wechsel zu vermeiden, die Regex
$ grep -owE '(.{1,})\1{1,3}' ip.txt
123123123
abababab
abcde1abcde1
aaaaaa
.{1,}
ein oder mehr Zeichen zu
\1{1,3}
maximal 4-mal wiederholt werden, so müssen wir wieder passen zumindest ein weiteres Mal und max 3 mal