On Mon, Dec 24, 2001 at 08:02:02AM +0100, Bernd Brodesser wrote:
* 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.
in allen Dokumentationen, die mir zur Verfuegung stehen, sind die schreibweise, {i}, {i,} oder {i,j} erlaubt, wobei j groesser i sein muss.
Wie geschrieben, die RegExp sind nicht einheitlich. Es ist ein Unterschied, ob Du grep oder sed, vi oder perl hast -- Leider.
Ja und nein, es sind gibt es zwei Variationen: Basic REs und 'extended' REs. grep benutzt Basic, "grep -E" oder egrep halt die erweiterten. "\{\}" wird bei BREs gebraucht, "{}" bei EREs. in sed(1) taucht die Abkuerzung BRE auf, was wohl fuer "Basic RE" steht. vi benutzt nach der vim-hilfe scheinbar BREs im Falle von vim mit Erweiterungen (und der Schreibweise "\{i}" *schuettel* ) Wenn man vi gegen die GNU libregex linkt wird man die GNU-Erweiterung \{\} wohl auch in vi nutzen koennen. Und perlre(1) haben eine eigene Manpage, es sind im Grunde aber extended REs mit Erweiterungen um Charakterklassen (Buchstaben, die Woerter bilden; Ziffern; Zeichen die Woerter trennen ...) Die Klassen gibt's auch in EREs, sind aber schreibintensiver. Aber richtig schlimm werden REs erst in PHP oder lisp-Code weil man dort die Backslashes quoten muss. Den gleichen Spass kann man auch an der Shell haben, wenn man des Ausdruck nicht in doublequotes packt. Peter -- man 7 regex