grep Frage - ich frag mal nach

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ralfi
Beiträge: 285
Registriert: 02.06.2011 11:16:11
Wohnort: Brandenburg

grep Frage - ich frag mal nach

Beitrag von ralfi » 27.11.2015 12:30:59

Hallo Forumser allesamt,

ich hab folgendes Problem mit einer Datei, aus welcher ich das Vorhandensein einer Zeichenkette filtern will. Dabei steht entweder

test ODER test-test

in der Datei. Wenn ich nun grep "test-test" suche, findet grep auch die Datei, in welcher nur "test" steht. Das will ich natürlich nicht.

Wie kann man das Problem lösen?
Viele Grüße, ralfi

Niveau sieht von unten oft wie Arroganz aus ...

Benutzeravatar
hikaru
Moderator
Beiträge: 13907
Registriert: 09.04.2008 12:48:59

Re: grep Frage - ich frag mal nach

Beitrag von hikaru » 27.11.2015 12:44:04

ralfi hat geschrieben:Wenn ich nun grep "test-test" suche, findet grep auch die Datei, in welcher nur "test" steht. Das will ich natürlich nicht.
Das sollte nicht passieren:

Code: Alles auswählen

$ echo test > test.txt
$ cat test.txt
test
$ grep "test-test" test.txt
$ 
Poste bitte mal das vollständige grep-Kommando und die Datei in der nur "test" steht!

uname
Beiträge: 12400
Registriert: 03.06.2008 09:33:02

Re: grep Frage - ich frag mal nach

Beitrag von uname » 27.11.2015 12:45:42

Hatte ich genauso getestet. Selbst die Datei habe ich test.txt genannt. Leider war ich zu spät ;-)

Bedenke aber dass "grep" im Gegensatz zu "fgrep" reguläre Ausdrücke verwendet. In deinem Beispiel ist das aber nicht relevant. Poste echte Ausgaben als Code-Blöcke.

Benutzeravatar
4A4B
Beiträge: 962
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: grep Frage - ich frag mal nach

Beitrag von 4A4B » 27.11.2015 13:40:28

Für den umgekehrten Fall, also wenn nur ein "test" aber kein "test-test" gefunden werden soll, ginge dies übrigens so:

Code: Alles auswählen

grep "^test$" *

Benutzeravatar
hikaru
Moderator
Beiträge: 13907
Registriert: 09.04.2008 12:48:59

Re: grep Frage - ich frag mal nach

Beitrag von hikaru » 27.11.2015 14:14:26

@4A4B:
Das würde voraussetzen, dass "test" allein in einer Zeile steht. Für mich gibt das die Problembeschreibung nicht her. Ich entnehme daraus nur, dass es Dateien gibt, in denen der String "test", aber nicht der String "test-test" vorkommt.

Eine Zeile könnte z.B. auch so aussehen:

Code: Alles auswählen

dies ist ein test.

Benutzeravatar
4A4B
Beiträge: 962
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: grep Frage - ich frag mal nach

Beitrag von 4A4B » 27.11.2015 15:07:09

Stimmt, da habe ich nicht genau gelesen :? .

Man könnte ein zweites grep dahinterschalten, welches Zeilen mit einem String "test-test" wieder herausfiltert:

Code: Alles auswählen

grep "test" * |  grep -v "test-test"

Antworten