Hallo Leute, ich möchte gern eine Datei greppen, und zwar so, daß jede Zeile ausgegeben wird, die entweder anton oder berta enthält. Wie macht man das? Ich dachte schon an Dinge wie grep anton|berta datei oder grep anton\|berta datei aber das ist nicht zielführend. Danke+gruß. Andy -- Antworten an lists@feile.net werden in /dev/null archiviert! Bitte ggf. lists... durch mail... ersetzen. Andreas Feile www.feile.net
Andreas Feile schrieb:
Hallo Leute,
ich möchte gern eine Datei greppen, und zwar so, daß jede Zeile ausgegeben wird, die entweder anton oder berta enthält. Wie macht man das? Ich dachte schon an Dinge wie
grep anton|berta datei oder grep anton\|berta datei
aber das ist nicht zielführend.
Danke+gruß. Andy
So? egrep \(anton\|berta\) Gruss bernd
Hallo Andreas, hallo Leute, Am Montag, 13. September 2004 08:15 schrieb Andreas Feile:
ich möchte gern eine Datei greppen, und zwar so, daß jede Zeile ausgegeben wird, die entweder anton oder berta enthält. Wie macht man das? Ich dachte schon an Dinge wie
grep anton|berta datei oder grep anton\|berta datei
aber das ist nicht zielführend.
Dir wurden ja schon verschiedene Möglichkeiten genannt, aber die Ursache des Nicht-Funktionierens Deiner ursprünglichen Version hat noch niemand erklärt. grep anton|berta datei -> die Bash wertet das | als Pipe und will die grep-Ausgabe (das von stdin liest) an das Programm "berta" pipen. Klar, das kann nicht gutgehen ("berta: command not found"). grep anton\|berta datei -> Das | wird durch den Backslash entschärft, bei grep kommt dann "anton|berta" an - und das würde nur bei egrep bzw. grep -E passen. Das "normale" grep wertet | allein nicht als besonderes Zeichen. Lösung: Quoten! grep "anton\|berta" datei Damit kommt der Backslash bei grep an und es funktioniert wie gewünscht. Alternativ und ohne Quoting ginge übrigens auch grep anton\\\|berta datei ;-) BTW: Die runden Klammern, die Bernd mit vorgeschlagen hat, sind nicht nötig - wenn sie fehlen, wird vom kompletten String ausgegangen und dieser bei \| in seine Bestandteile zerlegt. BTW2: Wenn Du Dir die ganzen Backslashes sparen willst, solltest Du Dir egrep bzw. grep -E angewöhnen ;-) Gruß Christian Boltz PS: Scheinbar ist mein Hinweis "Wie verweise ich auf die FAQ" etwas zu hart bei Dir angekommen. War nicht böse gemeint, sorry ;-) -- Ein Schimpanse könnte das ändern. (Das mag daran liegen, daß ich nicht viel besser programmiere als ein Schimpanse - aber es läuft. :-) ) [Ratti in Fontlinge-devel]
participants (3)
-
Andreas Feile
-
Christian Boltz
-
Illuminatus@t-online.de