Mailinglist Archive: opensuse-de (1347 mails)

< Previous Next >
AW: Verständnisfrage zu grep
  • From: "Lentes, Bernd" <bernd.lentes@xxxxxxxxxxxxxxxxxxxxx>
  • Date: Mon, 8 Feb 2010 16:49:32 +0100
  • Message-id: <15785B7E063D464C86DD482FCAE4EBA5D78F9E36D6@xxxxxxxxxxxxxxx>



David Haller schrieb:
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.

Danke für die klare Antwort.


Tatsächlich äquivalent sind:

grep -v '^#' Datei ### zeige keine Zeilen die mit # beginnen
und
grep '^[^#]' Datei ### zeige alle Zeilen, die nicht
mit # beginnen

Tut mir leid, Dich enttäuschen zu müssen:

pc53082:~ # grep -v '^#' greptest


111
1111
11 # ein Kommentar hinten dran

pc53082:~ #

pc53082:~ # grep '^[^#]' greptest
111
1111
11 # ein Kommentar hinten dran
pc53082:~ #

"grep -v '^#'" zeigt alle Zeilen an, die nicht mit # anfangen. Eine Leerzeile
fängt nicht mit # an.
"grep '^[^#]'" zeigt alle Zeilen an, die mit einem anderen Zeichen als #
anfangen. Eine Leerzeile fängt nicht mit einem anderen Zeichen als # an,
sondern mit überhaupt keinem Zeichen.

Und wenn das jetzt so nicht stimmt, habe ich in den letzten Stunden gar nichts
gelernt und bin todtraurig. Schnief.

Bernd--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups