Hallo, Am Mon, 08 Feb 2010, Lentes, Bernd schrieb:
1. grep [^#] bedeutet _nicht_, "zeige alle Zeilen, die kein # enthalten", _sondern_ "zeige alle Zeilen, die ein anderes Zeichen als # enthalten" ?
Ja.
2. "[^#] findet also alle Zeilen, die entweder mit irgendwas beginnen "^" (daher auch nicht die leeren Zeilen) oder nen "#" enthalten."
Nein.
Stimmt insofern nicht, als daß das ^ hier nichts mit dem Zeilenanfang zu tun hat.
Genau. Negation der Zeichenklasse.
Frustierend, wenn in einem Buch zur LPI-Vorbereitung drin steht (das auch noch 35,-- € kostet), daß "grep -v [#] Datei" und "grep [^#] Datei" das gleiche seien.
Jap. Zumal: wenn da die REs wirklich so ohne Quotes drinstehen... Würde ich das als "auto-disqualifiziert" bezeichnen. Siehe auch meine andere Mail. Tatsächlich äquivalent sind: grep -v '^#' Datei ### zeige keine Zeilen die mit # beginnen und grep '^[^#]' Datei ### zeige alle Zeilen, die nicht mit # beginnen Analysiere mal beide RE (und die Negation durch '-v') "zeichenweise" anhand von 'man 7 regex' oder 'man grep' (und meinen Kommentaren ;) HTH, -dnh -- "But you should never let rules overrule common sense - if you do, you end up doing stupid things" -- Linus Torvalds -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org