Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 May 2004 09:25:56 -0700
From:      Drew Tomlinson <drew@mykitchentable.net>
To:        Erik Trulsson <ertr1013@student.uu.se>
Cc:        FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: grep & RegEx Syntax- How to Match? -- SOLVED
Message-ID:  <40A8E794.6040309@mykitchentable.net>
In-Reply-To: <20040517153636.GA23982@falcon.midgard.homeip.net>
References:  <40A8D6A5.5090705@mykitchentable.net> <20040517153636.GA23982@falcon.midgard.homeip.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 5/17/2004 8:36 AM Erik Trulsson wrote:

>On Mon, May 17, 2004 at 08:13:41AM -0700, Drew Tomlinson wrote:
>  
>
>>I've learned a little about regular expressions and am trying to use 
>>them with grep.  I want to parse my httpd log to return entries that 
>>contain a particular IP address and file ending in .htm or .html.  I 
>>want to match lines like this one:
>>
>>123.456.789.123 - - [17/May/2004:06:54:53 -0700] "GET 
>>/public/murphys/produced/tricks.html HTTP/1.0" 200 5446 "-" 
>>"Mozilla/4.77 [en] (X11; U; Linux 2.2.19 i686)"
>>    
>>
>
>Is that supposed to be a single line, or is it actually three lines in
>the log.
>That matters because grep works on lines.
>I will assume that it is only line in the log.
>  
>
Sorry.  Yes, one single line.

>>I'm using the this command:
>>
>>egrep -e ^123\.456\.789\.123.*htm.* /path/to/file
>>    
>>
>
>Try quoting the argument given to egrep, otherwise your shell might try
>to expand '*' as a wildcard.
>I.e. try
>
>egrep -e '^123\.456\.789\.123.*htm.*' /path/to/file
>  
>
Thank you!  Yes, this works as I expect.

>>However this does not match anything.  If I shorten the regex to 
>>^123\.456\.789\.123, I match all entries with that IP address.  And if I 
>>use 'htm' as the regex, I get match all lines with html files.  But I 
>>can't find the right syntax to match on both conditions.
>>    
>>
>
>You could try piping the output from the first grep into a second grep.
>For example:
>
>grep '^123\.456\.789\.123' /path/to/file | grep 'htm'
>  
>
Another good idea.

Thanks for your help!

Drew

-- 
Visit The Alchemist's Warehouse
Magic Tricks, DVDs, Videos, Books, & More!

http://www.alchemistswarehouse.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?40A8E794.6040309>