Hier ist der Befehl:
grep '(2)[[:digit:]]{1}' numbers
Was ich möchte, ist, genau 2 Ziffern nach der Ziffer „2“ abzugleichen, 3 Ziffern, wenn ich die Ziffer „2“ in meinem Ausdruck in „3“ ändere, 4 Ziffern, wenn …
Ich verwende hier Rückverweise, aber wenn ich diesen Befehl ausführe, erhalte ich die folgende Ausgabe:
grep: invalid content of {}
Wie könnte man meinen Ausdruck ändern?
erste Lösung :
Als Serge antwortete:
2[[:digit:]]{1}|3[[:digit:]]{2}|4[[:digit:]]{3}|5[[:digit:]]{4}
Das könnte tatsächlich funktionieren, aber nehmen wir an, ich habe (34)
Als ersten Unterausdruck wünschte ich, ich könnte auf diese Zahl zurückverweisen, damit ich nicht die 34 Fälle (oder mehr) implementieren muss.
Akzeptierte Antwort:
Rückverweise sind hier nicht erlaubt. Sie müssen den Ausdruck schreiben, der alle möglichen Fälle beschreibt, z. B.:
2[[:digit:]]{1}|3[[:digit:]]{2}|4[[:digit:]]{3}|5[[:digit:]]{4}