get quote enclosed field in a line

Paul McGuire ptmcg at austin.rr.com
Thu Apr 17 22:39:12 EDT 2008


On Apr 17, 6:50 pm, John Machin <sjmac... at lexicon.net> wrote:
> xah... at gmail.com wrote:
> > is there a simple way in perl, python, or awk/shell/pipe, that gets
> > the user agent field in a apache log?
>
> > e.g. the typical line is like this:
>
> > 189.139.109.235 - - [07/Apr/2008:00:00:16 -0400] "GET /
> > Periodic_dosage_dir/lacru/manara.html HTTP/1.1" 200 1933 xahlee.org
> > "http://xahlee.org/Periodic_dosage_dir/lacru/manara2.html" "Mozilla/
> > 5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.13) Gecko/20080311
> > Firefox/2.0.0.13" "-"
>
> > I want the part: "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:
> > 1.8.1.13) Gecko/20080311 Firefox/2.0.0.13".
>
> C:\junk>type xah.py
> import cStringIO, csv, pprint
> line = '''189.139.109.235 - etc etc etc'''
> f = cStringIO.StringIO(line)
> reader = csv.reader(f, delimiter=" ")
> row = reader.next()
> pprint.pprint(row)
>
> C:\junk>xah.py
> ['189.139.109.235',
>   '-',
>   '-',
>   '[07/Apr/2008:00:00:16',
>   '-0400]',
>   'GET / Periodic_dosage_dir/lacru/manara.html HTTP/1.1',
>   '200',
>   '1933',
>   'xahlee.org',
>   'http://xahlee.org/Periodic_dosage_dir/lacru/manara2.html',
>   'Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.13)
> Gecko/20080311 Fi
> refox/2.0.0.13',
>   '-']
>
> If you don't like that, just hang about -- there's sure to be a
> pyparsing bus coming by real soon now :-)
>
> Cheers,
> John

Beep, beep!

You can find a pyparsing-based log server file parser at
http://pyparsing.wikispaces.com/space/showimage/httpServerLogParser.py.

Vrooom!
-- Paul



More information about the Python-list mailing list