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.

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.