Re: regex fuer zwei Begriffe mit UND Verknuepfung

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Fri, 10 Feb 2006 18:25:15 +0100 (CET)

Marc Santhoff <M.Santhoff(at)t-online.de> wrote:
> Wie formuliere ich einen Regulären Ausdruck für die Suche nach zwei
> Begriffen, die beide im Dokument enthalten sein sollen?
>
> $grep -E "Begriff1 Begriff2"

Nachdem ich die anderen Antworten gelesen habe, muß ich
sagen, daß sie eigentlich nicht die Lösung auf Deine obige
Frage darstellen. Die Formulierung Deiner Frage schränkt
die Suche nämlich nicht auf den Fall ein, daß die Begriffe
in derselben Zeile stehen müssen.

Du möchtest also aus einer Reihe von Dokumenten diejenigen
heraussuchen, die zwei bestimmte Begriffe enthalten, und
zwar nicht zwangsläufig in derselben Zeile. Das geht so:

grep -l Begriff1 *.txt | xargs grep -l Begriff2

Das liefert die Die betreffenden Dateinamen. Mir ist kein
GUI-Programm bekannt, das derartiges leistet; zumindest
ist keines per default mit einem der gängigen GUIs (KDE,
Gnome, Windows) installiert.

Wenn die Suchbegriffe dagegen in derselben Zeile stehen
sollen, ist es mit awk am einfachsten:

awk '/Begriff1/&&/Begriff2/' *.txt

liefert die gewünschten Zeilen.

Gruß
   Olli

-- 
Oliver Fromme,  secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"C++ is over-complicated nonsense. And Bjorn Shoestrap's book
a danger to public health. I tried reading it once, I was in
recovery for months."
        -- Cliff Sarginson
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 10 Feb 2006 - 18:26:26 CET

search this site