Gebhard Dettmar schrieb:
On Thursday 14 September 2006 11:30, Sascha Vogt wrote:
Gebhard Dettmar schrieb:
On Wednesday 13 September 2006 11:15, Sascha Vogt wrote:
Gebhard Dettmar schrieb:
[...]
mach doch mal ein grep \[p]s :) und vergleichs mit grep [p]s
Danke, das war der rettende Hinweis (bin nicht drauf gekommen, was "ps
w" aus "grep [p]s" macht): es ist also die schließende eckige Klammer,
die den Match verhindert, richtig?
Und die öffnende... Das Problem ist, wenn die schließende Klammer auch
Dann verstehe ichs immer noch nicht: bei "ps w |grep [p]s" läuft m.M.
folgendes ab: gematcht werden soll (bzw., s. OP, soll nicht) der Prozess
grep [p]s. Das wird also genau so als Literalstring von ps w ausgegeben -
grep [p]s sucht natürlich ein p, gefolgt von einem s. Beim String [p]s
fängt er, wie immer, links an - das ist öffnende Klammer = Mismatch. Also
geht er eins nach rechts, das ist p = Match. Da da keine Quantifizierer
oder "beliebiges Zeichen-Metazeichen" standen, müsste jetzt ein s kommen,
stattdessen steht da aber die schließende Klammer, also wird p, gefolgt
von s nicht gefunden, also nicht ausgegeben.
Du hast natürlich Recht, die öffnende Klammer hat im Prinzip nix damit
zu tun :) Da stand ich auf m Schlauch...
noch escaped wird, dann hast du ja wieder ein \ in deiner ps -w
Ausgabe... Henne-Ei Problem ;) Das zu matchen hab ich auf die Schnelle
nicht hinbekommen (eigentlich sollte m.E. grep "\[p\\+\]s"
funktionieren, tuts aber nicht). Da die öffnende Klammer ja schon
Nehme an, wegen "+" als Literal. Du willst es doch als Quantifizierer,
oder?
Ja möchte ich, geht wohl in Zeichenklassen nicht?
Ich verstehe nicht, was du damit willst (ich lese [p\\+\] so: p, dann
erster \ als Maskierung des zweiten \, das ein oder mehrere Male (+), dann
\ als Maskierung für schließende Klammer. Das "+\" darin verstehe ich
nicht.
Na ich wollte die schließende Klammer auch escapen ;) Aber das scheint
wohl nicht nötig zu sein... Und wenn ich die schließende Klammer escape
muss das \ auch im Regex vorkommen. Da ich aber für ein \ im Regex ein
weiteres \ benötige, wollte ich es mit dem + auf beliebig viele matchen
lassen.
Was geht, ist ps w |grep \[p\\]s sowie natürlich \[p\\+]s (Für ps w
natürlich nur)
Ich kriege es aber grad auch nicht gebacken, die Ausgabe von
echo "\[p\\+\]s" = \[p\+\]s mit grep zu matchen ;-(
Ich auch nicht...
Gruß
-Sascha-
PS: Ich glaube wir lassen es langsam gut sein ;) So langsam kriegt man
ja Hirnkrämpfe bei den Regexen...
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/
Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)