grep - Nach zwei Begriffen in einer Zeile suchen

Post Reply
Message
Author
Speed78

grep - Nach zwei Begriffen in einer Zeile suchen

#1 Post by Speed78 »

Hi,

ich bekomme mehrere Zeilen aus einer Datei zurück wie zum Beispiel so:

TEST;93999;True
BETA;93999;False
TEST;93999;False

Ich möchte jetzt alle Zeilen mit grep indem der Begriff "TEST" und "True" drin vorkommt zurückgegeben kommen. Wie mache ich das?

Gruß Speed78

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

Re: grep - Nach zwei Begriffen in einer Zeile suchen

#2 Post by Janka »

Zweimal nacheinander greppen.

Janka

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

#3 Post by komsomolze »

Code: Select all

egrep 'Begriff1|Begriff2' Datei

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#4 Post by jochen »

@komsomolze: Das trifft aber nicht den Kern des Problems: Beide Treffer sollen in einer Zeile auftauchen, nicht nur einer oder der andere alleine.

@all: Statt grep besser awk gebrauchen.

Code: Select all

awk -F\; '$1 == "TEST" && $3 == "True"'
-F setzt den Feldtrenner auf ";" (mit \ maskiert, der Shell wegen). Wenn das erste Feld gleich TEST lautet und das dritte gleich "True", wird die Default-Aktion ausgelöst, nämlich die Ausgabe der ganzen Zeile.

Jochen
Die grösste Lüge der EDV? "Mal eben..."

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

#5 Post by komsomolze »

Beide Treffer sollen in einer Zeile auftauchen, nicht nur einer oder der andere alleine.
dann so:

Code: Select all

egrep '^TEST.*True$' Datei
tschuldigung, mal wieder zu schnell gelesen.

Post Reply