Forum: PC-Programmierung grep -v mit RegEx?


von Peter (Gast)


Lesenswert?

Ich hab eine Datei mit folgendem Aufbau:
1
aaa 111 bbbb 222 ccc 333 ddd
2
eeee 222 fff 333 ggg 444 hhh
3
iii 333 jjjjjj 444 kkk 555 lll
4
mmmmm 444 nnn 555 oooooo 666 ppp
5
qqq 555 rrr 666 ss 777 ttt

Ich versuche etwas der folgenden Art:
1
grep -v "*111*222*333*" test.txt | grep -v "*444*555*666*"

Leider kommt dann wieder alles raus:
1
aaa 111 bbbb 222 ccc 333 ddd
2
eeee 222 fff 333 ggg 444 hhh
3
iii 333 jjjjjj 444 kkk 555 lll
4
mmmmm 444 nnn 555 oooooo 666 ppp
5
qqq 555 rrr 666 ss 777 ttt

Ich möchte aber nur
1
eeee 222 fff 333 ggg 444 hhh
2
iii 333 jjjjjj 444 kkk 555 lll
3
qqq 555 rrr 666 ss 777 ttt

Kann ich dies dem grep irgendwie beibringen?

von Achim M. (minifloat)


Lesenswert?

Hast du schon 'grep -e' für extended regex probiert?

Auch zu empfehlen, mit https://regexr.com/ herum zu spielen.

mfg mf

von Hmmm (Gast)


Lesenswert?

Peter schrieb:
> grep -v "*111*222*333*" test.txt | grep -v "*444*555*666*"

Nimm ".*" statt "*".

von Peter (Gast)


Lesenswert?

Hmmm schrieb:
> Peter schrieb:
>> grep -v "*111*222*333*" test.txt | grep -v "*444*555*666*"
>
> Nimm ".*" statt "*".

Vielen herzlichen Dank! Funktioniert!

von Rolf M. (rmagnus)


Lesenswert?

* heißt "beliebig viele von dem, was davor steht (inklusive 0)". Daher 
funktioniert das für sich alleine nicht.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.