Page 1 of 1

grep - Nach zwei Begriffen in einer Zeile suchen

Posted: 19. Mar 2006 16:31
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

Re: grep - Nach zwei Begriffen in einer Zeile suchen

Posted: 19. Mar 2006 17:48
by Janka
Zweimal nacheinander greppen.

Janka

Posted: 19. Mar 2006 21:22
by komsomolze

Code: Select all

egrep 'Begriff1|Begriff2' Datei

Posted: 19. Mar 2006 22:00
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

Posted: 19. Mar 2006 23:07
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.