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/