On 2011/05/17 01:33 (GMT+0200) Alan McKinnon composed:

grep "GET /Tmp/Linux/G" | /var/log/apache2/access_log | grep-v<myip>  | \
awk '{print $1}' | sort | uniq | wc

In true grand Unix tradition you cannot get quicker, dirtier or more effective
than that

It almost worked too. :-)

        grep "GET /Tmp/Linux/G" /var/log/apache2/access_log | grep -v <myip>  | 
\
        awk '{print $1}' | sort | uniq | wc -l

got me almost what I wanted, 20 unique IPs, but that's a lot of stuff to remember, which for me will never happen. So I tried converting to an alias.

        grep "GET $1" | /var/log/apache2/access_log | grep -v <myip>  | \
        awk '{print $1}' | sort | uniq | wc -l

sort of works, except I won't always be looking for GET as part of what to grep for, or might require more than one whitepsace instance, and am tripping over how to deal with the whitespace if I leave GET out of the alias and only put on cmdline if I actually want it as part of what to grep for.

        grep "GET $1 $2" | /var/log/apache2/access_log | grep -v <myip>  | \
        awk '{print $1}' | sort | uniq | wc -l

seems to work, but I'm not sure there aren't booby traps besides 2nd or more whitespace instances I'm not considering, even though it gets the same answer for this particular case.
--
"The wise are known for their understanding, and pleasant
words are persuasive." Proverbs 16:21 (New Living Translation)

 Team OS/2 ** Reg. Linux User #211409 ** a11y rocks!

Felix Miata  ***  http://fm.no-ip.com/

Reply via email to