grep - Nach zwei Begriffen in einer Zeile suchen

Antworten
Nachricht
Autor
Speed78

grep - Nach zwei Begriffen in einer Zeile suchen

#1 Beitrag von Speed78 » 19. Mär 2006 16:31

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

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

Re: grep - Nach zwei Begriffen in einer Zeile suchen

#2 Beitrag von Janka » 19. Mär 2006 17:48

Zweimal nacheinander greppen.

Janka

komsomolze
Beiträge: 430
Registriert: 03. Mär 2006 23:16

#3 Beitrag von komsomolze » 19. Mär 2006 21:22

Code: Alles auswählen

egrep 'Begriff1|Begriff2' Datei

Benutzeravatar
jochen
prolinux-forum-admin
Beiträge: 699
Registriert: 14. Jan 2000 15:37
Wohnort: Jülich
Kontaktdaten:

#4 Beitrag von jochen » 19. Mär 2006 22:00

@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: Alles auswählen

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
Beiträge: 430
Registriert: 03. Mär 2006 23:16

#5 Beitrag von komsomolze » 19. Mär 2006 23:07

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

Code: Alles auswählen

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

Antworten