Hallo Bernd, Lentes, Bernd schrieb:
Werner Flamme schrieb:
Eine Leerzeile besteht aus keinem Zeichen. Nur die beiden Positionen Zeilenanfang (^) und Zeilenende ($) existieren.
[^#] ist eine Zeichenklasse. Sie enthält alle Zeichen außer # (siehe Mail von Ralf Arndt).
Nur noch 'mal zur Sicherheit: Sprich: grep [^#] bedeutet _nicht_, "zeige alle Zeilen, die kein # enthalten", _sondern_ "zeige alle Zeilen, die ein anderes Zeichen als # enthalten" ?
lies Dir noch einmal in Ruhe die folgenden Zeilen durch. Hilfe: was macht ein grep -v ? was bedeutet das Muster: 1) [^#] ? 2) ^[#] ? 3) Warum ist der Ausdruck aus 2) gleich wie dieser hier; "^#" ?? Dann bitte mit grep ausprobieren (So kommst Du am ehesten zum Ziel ;-) ). Als Hilfe noch: wenn Du "[^#]" benutzt, gibst Du mit [ ] (den Klammern) eine Gruppe von Zeichen an, nach denen Du suchst. [1] zu 2):
grep -v ^[#] sucht Zeilen, die nicht mit einem # beginnen. Dazu gehören Leerzeilen.
zu 1):
grep ^[^#] sucht Zeilen, die mit einem anderen Zeichen als # beginnen. Eine Leerzeile hat aber kein Zeichen, also beginnt sie auch nicht mit einem anderen Zeichen als # :-)
[1] http://de.wikibooks.org/wiki/Linux-Kompendium:_Shellprogrammierung#Mustererk... -- Gruß Axel -- 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