JBlack Skrevet 6. november 2005 Del Skrevet 6. november 2005 cat *.txt | grep ord1 Enkelt og greit, finner ord1 i fil.txt og skriver ut linja der den fantes. Men jeg vil finne flere ord i et og samme søk. Enter regular expressions, som jeg ikke kan. Noen som fort kan vise hvordan dette gjøres? cat *.txt | grep -e REGEXP Hva skal REGEXP være om jeg søker etter ord1, ord2 og ord3? Lenke til kommentar
LessThanJake Skrevet 6. november 2005 Del Skrevet 6. november 2005 Dette burde funke: grep -e ord1 -e erd2 *.txt Lenke til kommentar
Terrasque Skrevet 6. november 2005 Del Skrevet 6. november 2005 evt "-e [ord1|ord2]" kanskje? Nå er nå min regexp viten litt nedstøvet, så om det ikke virker er det derfor http://www.regular-expressions.info/ Lenke til kommentar
JBlack Skrevet 6. november 2005 Forfatter Del Skrevet 6. november 2005 (endret) Edit: Thanx, funka det, LTJ's forslag that is. Terrasque, ditt forslag ser ut til å returnere hele fila. Endret 6. november 2005 av JBlack Lenke til kommentar
Terrasque Skrevet 6. november 2005 Del Skrevet 6. november 2005 (endret) Etter en smule testing fant jeg det ut: terra@terrasque:~$ cat test.py | grep -e 'range\|nextnr' def nextnr(x,y): for u in range(10): a,b=nextnr(a,b) # x,y = nextnr(a) Endret 6. november 2005 av Terrasque Lenke til kommentar
JBlack Skrevet 7. november 2005 Forfatter Del Skrevet 7. november 2005 Etter en smule testing fant jeg det ut: terra@terrasque:~$ cat test.py | grep -e 'range\|nextnr' ..... 5114972[/snapback] Yep, det funker. Men jeg skjønner det ikke. Hvorfor i all verden trenger man en \ der. For meg blir det feil, men det funker i praksis. $ echo 'range\|nextnr' range\|nextnr $ echo range\|nextnr range|nextnr $ echo 'range|nextnr' range|nextnr Regexp'en inkluderer jo escape tegnet, og søket burde så vidt jeg forstå bli etter strengen range|nextnr og ikke etter range eller nextnr. Altså pipe tegnet skulle blitt tolket som en litteral og ikke et spesielt tegn. Jeg ville altså brukt en av de to siste alternativene, og ikke den som virker. Lenke til kommentar
ratix Skrevet 7. november 2005 Del Skrevet 7. november 2005 Yep, det funker. Men jeg skjønner det ikke. Hvorfor i all verden trenger man en \ der. For meg blir det feil, men det funker i praksis.*klipp* 5117406[/snapback] Problemet er at Terrasque bruker feil flagg, extended regex er -E, ikke -e (egrep-kommandoen tilsvarer forresten grep -E) echo -ne "asdf\nqwer\nfrukt\n" | egrep "asdf|frukt" asdf frukt Lenke til kommentar
Terrasque Skrevet 11. november 2005 Del Skrevet 11. november 2005 Aha! Takker for den. Reagerte litt på det der selv Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå