Hallo Andre, * Andre Heine schrieb am 23.Dez.2001:
Am Sonntag, 23. Dezember 2001 18:32 schrieb Bernd Brodesser:
grep "[a-z,A-Z]{60}" Datei.txt
Geb mal grep "[a-zA-Z]\{60\}" Datei.txt ein. Ohne \ sucht grep nach { Ich weiß auch nie, ob da ein \ vor muß oder nicht, da sich grep, sed, vi, perl und was es sonst noch so gibt in diesem Punkt
Hmm, im meinen RegExp Buch v. Oreilly steht, daß die "{}" einen expliziten Bereich mit einem "min" und "max" Wert benötigen.
Wie geschrieben, die RegExp sind nicht einheitlich. Es ist ein Unterschied, ob Du grep oder sed, vi oder perl hast -- Leider. Auch unterscheiden sich verschiedene Versionen.
IMHO meinen die damit, das ein Zeichen(o. RegExp) eben min und max vorhanden sein soll.
Ist bei grep aber nicht der Fall.
grep "[a-zA-Z]\{60\}" datei.txt #Gibt min 60 Zeichen aus egrep "[a-zA-Z]{60}" datei.txt # Gibt min 60 Zeichen aus
Ja und egrep ist das Gleiche wie grep -E Aber das mit dem min 60 Zeichen stimmt so nicht. Es wird nach exakt 60 Zeichen gesucht, allerdings wenn da nichts davor und nichts danach steht, so wird natürlich auch mehr als 60 Zeichen gefunden, weil in mehr als 60 Zeichen auch eine Zeichenkette gibt, die aus exakt 60 Zeichen besteht. Hat man z.B egrep "1[a-zA-Z]{60}2" so wird eine Zeichenkette gefunden, die mit einer 1 beginnt, dan _exakt_ 60 Buchstaben hat und dann noch eine 2. Eine Zeichenkette die aus einer 1, 61 Buchstaben und eine 2 besteht wird hingegen nicht gefunden.
Jedenfalls unterstützen nicht _alle_ egrep Versionen die "{}".
Bei der im Buch behandelten egrep Version sind die "\" nicht nötig.
Nicht nötig heißt immer auch falsch. Es können nicht beide Varianten gehen. Wenn \{60\} geht, dann geht mit Sicherheit {60} nicht, und umgekehrt. Es kann nur sein, daß beide Varianten nicht gehen. Es kann aber nicht sein, daß beide Varianten gehen, denn es muß auch die Möglichkeit bestehen, daß man nach der Zeichenkette {60} sucht.
ACK Mit den exakt 60 Buchstaben bringt mir mein Ausdruck keinen Erfolg.
Hier gilt: Probieren geht vor Studieren. Kluge Bücher sind schön und nett, aber die Praxis mag anders sein. Bernd