GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Grep:Ungültiger Inhalt von {}?

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}

Linux
  1. Grep -v Unerwartetes Verhalten?

  2. Überprüfen, ob ein Skript ausgeführt wird?

  3. Wie kann man den Inhalt einer String-Variable eingeben?

  4. Linux grep-Befehl

  5. Nutzungsbedingungen

Grep Regex:Ein vollständiger Leitfaden

So schließen Sie in Grep aus

Reguläre Ausdrücke in Grep (Regex)

Grep und Schwanz -f?

Grep-Befehl unter Linux/UNIX

Verwenden von grep vs. awk