Hallo, irgendwie stelle ich mich gerade etwas bloed mit grep an. Ich will z.B. "z.\,B." finden: grep -i "z.\,B." *.tex geht logischerweise nicht, aber grep -i "z\.\\,B\." *.tex eigenartigerweise auch nicht. Warum? Und wie geht es dann? Beste Gruesse, Heinz. -- Reisefuehrer Bulgarien u.a: http://www.erlebnis-bulgarien.de Reiseberichte Osteuropa: http://www.pahlke-online.de Barrierefreies Webdesign: http://www.Pahlke-KunstWebDesign.de -- 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
hallo, nimm grep 'z\.\\,B.' (einfache hochkommas) Dietmar Heinz W. Pahlke schrieb:
Hallo,
irgendwie stelle ich mich gerade etwas bloed mit grep an.
Ich will z.B. "z.\,B." finden:
grep -i "z.\,B." *.tex geht logischerweise nicht, aber
grep -i "z\.\\,B\." *.tex eigenartigerweise auch nicht.
Warum? Und wie geht es dann?
Beste Gruesse,
Heinz.
-- 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
Hallo, On 13-Dec-2006 Dietmar Kühn wrote:
nimm grep 'z\.\\,B.' (einfache hochkommas)
Vielen Dank. Aber warum geht es mit einfachen Hochkommas und nicht auch mit Anfuehrungszeichen? Bei anderen Suchmustern funktioniert es doch sonst auch? Beste Gruesse, Heinz. -- Reisefuehrer Bulgarien u.a: http://www.erlebnis-bulgarien.de Reiseberichte Osteuropa: http://www.pahlke-online.de Barrierefreies Webdesign: http://www.Pahlke-KunstWebDesign.de -- 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
Aber warum geht es mit einfachen Hochkommas und nicht auch mit Anfuehrungszeichen? Bei anderen Suchmustern funktioniert es doch sonst auch?
Strings in Anführungszeichen werden von der Bash interpretiert, während Strings in einfachen Hochkommas einfach weitergereicht werden. So bekommt grep dann tatsächlich "\\" statt "\" übergeben, um nach einem Backslash zu suchen. -- 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
Heinz W. Pahlke schrieb:
Hallo,
On 13-Dec-2006 Dietmar Kühn wrote:
nimm grep 'z\.\\,B.' (einfache hochkommas)
Vielen Dank.
Aber warum geht es mit einfachen Hochkommas und nicht auch mit Anfuehrungszeichen? Bei anderen Suchmustern funktioniert es doch sonst auch?
Beste Gruesse,
Heinz.
die shell nimmt einige '\' weg, wenn doppelte hochkommas stehen. probiers mit "set -x" auf der kommandozeile: grep "z\.\\\,B\." x + grep 'z\.\\,B\.' x erscheint dann. Dietmar -- 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
Am Mittwoch 13 Dezember 2006 11:18 schrieb Heinz W. Pahlke:
Hallo,
irgendwie stelle ich mich gerade etwas bloed mit grep an.
Ich will z.B. "z.\,B." finden:
grep -i "z.\,B." *.tex geht logischerweise nicht, aber
grep -i "z\.\\,B\." *.tex eigenartigerweise auch nicht.
grep -i "z\.\\\,B\." *.tex So sollte es gehen da fehlte noch ein \ um das Komma zu maskieren. Viele Grüße Klaus -- Have a nice day ;-) -- 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
Am Mittwoch 13 Dezember 2006 11:55 schrieb Klaus Rehberg:
grep -i "z\.\\\,B\." *.tex
So sollte es gehen da fehlte noch ein \ um das Komma zu maskieren.
Sorry, hat nichts mit dem Komma zu tun sondern mit den \\ Viele Grüße Klaus -- Have a nice day ;-) -- 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
On Wednesday 13 December 2006 11:18, Heinz W. Pahlke wrote:
Ich will z.B. "z.\,B." finden:
grep -i "z.\,B." *.tex geht logischerweise nicht, aber
grep -i "z\.\\,B\." *.tex eigenartigerweise auch nicht.
Warum? Und wie geht es dann?
Vielleicht hilft das hier ein bißchen weiter: 0 r2@opi ~$ echo 'z.\,B.' z.\,B. 0 r2@opi ~$ echo "z.\\,B." z.\,B. 0 r2@opi ~$ echo 'z.\,B.' | grep -i 'z.\,B.' 1 r2@opi ~$ echo 'z.\,B.' | grep -i 'z.\\,B.' z.\,B. 0 r2@opi ~$ echo 'z.\,B.' | grep -i "z.\\,B." 1 r2@opi ~$ echo 'z.\,B.' | grep -i "z.\\\,B." z.\,B. 0 r2@opi ~$ echo 'z.\,B.' | grep -i "z.\\\\,B." z.\,B. Besonders interessant sind diese beiden Fälle: 'z.\,B.' und "z.\\,B.". Beide matchen nicht, weil grep einen regulären Ausdruck will und \, eben nur ein Komma meint. In beiden Fällen wird an grep nur z.\,B. übergeben, wie aus dem 2. echo-Befehl am Anfang sichtbar wird. Das Problem ist wie immer das Quoting der Shell. Du willst grep z.\\,B. übergeben, also kannst Du schreiben 'z. \\,B.' oder "z.\\\\,B.". Bei "z.\\\,B." faßt die Bash die ersten 2 Backslashes zu einem zusammen und trifft dann auf \,. Hier denkt sie sich dann, Du hättest einen Backslash vergessen und hilft Dir. Daher funktioniert diese Variante auch. Torsten
Hallo, On 13-Dec-2006 Torsten Foertsch wrote:
Besonders interessant sind diese beiden Fälle: 'z.\,B.' und "z.\\,B.". Beide matchen nicht, weil grep einen regulären Ausdruck will und \, eben nur ein Komma meint. In beiden Fällen wird an grep nur z.\,B. übergeben, wie
Vielen Dank dir und den anderen fuer die Erklaerungen. Ich bin natuerlich von der Annahme ausgegangen, wenn eine Suche nach "z\.B\." funktioniert, "z\.\\,B\." auch gehen muss. Aber dann werde ich zukuenftig eben einfache Hochkommata benutzen. Das macht es dann doch etwas leichter. Beste Gruesse, Heinz. -- Reisefuehrer Bulgarien u.a: http://www.erlebnis-bulgarien.de Reiseberichte Osteuropa: http://www.pahlke-online.de Barrierefreies Webdesign: http://www.Pahlke-KunstWebDesign.de -- 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
participants (5)
-
Dietmar Kühn
-
Dominik Klein
-
Heinz W. Pahlke
-
Klaus Rehberg
-
Torsten Foertsch