Sida 1 av 1

grep regexp-problem: hur söka.

Postat: 22 jan 2008, 23:01
av Urban Anjar
Jag vill söka efter den felaktiga konstruktionen http://. i en väldig massa filer, men grep uppfattar ju . som ett godtyckligt tecken. hur får jag grep att uppfatta det som exakt en punkt (.)?

SV: grep regexp-problem: hur söka.

Postat: 22 jan 2008, 23:28
av mcNisse
Normalt sett är det bara att "backquota" som jag brukar säga :P

Kod: Markera allt

echo http://. | grep "http://\."

SV: grep regexp-problem: hur söka.

Postat: 23 jan 2008, 00:46
av Urban Anjar
Fick inte det att funka med just '.', men hittade sedan att grep -F tar en på orden om man säger så.
Den akuta krisen verkar över, men fler tips mottages gärna ändå.

Sk*ten ska i drift i morgon och  när man kommer hem från jobbet visar det sig inte funka som avsett. Då visade det sig dessutom att den jävla leverantören (något ofritt åbäke till blogtjoasan) hårdkodat in fel domännamn på sisådär
hundra ställen, delvis i obfuskerad kod. Aaargh, men nu verkar skiten funka. Tror jag är värd en virre.

SV: grep regexp-problem: hur söka.

Postat: 23 jan 2008, 00:57
av mcNisse
Hade ingen aning om -F till grep, den är ju användbar.

Jag är helt säker på att grep "\." fungerar. Det borde vara samma sak som grep -F .

SV: grep regexp-problem: hur söka.

Postat: 23 jan 2008, 01:00
av andol
Urban Anjar skrev: ... men fler tips mottages gärna ändå.
Tja, rent allmänt så tycker jag att -E är en trevlig flagga, då den ger grep lite mer fullständig (läs: extended) hantering av reguljära uttryck. Lite småpraktiskt är även att det finns varianter av grep-kommandot, beroende på vilket standardbettende man föredrar.

egrep (-E), fgrep (-F) och rgrep (-r)

SV: grep regexp-problem: hur söka.

Postat: 23 jan 2008, 01:03
av andol
mcNisse skrev: Jag är helt säker på att grep "\." fungerar. Det borde vara samma sak som grep -F .
Japp

Kod: Markera allt

andreas@stilgar:~$ echo "http://.foo" | grep -v "http://\."
andreas@stilgar:~$ echo "http://foo" | grep -v "http://\."
http://foo