2017-12-17 3 views

Antwort

1

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
Verwandte Themen