#!/bin/sh
# Предположим, у нас есть access.log веб-сервера.
# Как с помощью стандартных консольных средств найти десять IP-адресов,
# от которых было больше всего запросов?
awk '
{ counter[$1]++ }
END {
for(x in counter)
print counter[x], x;
}
' |
sort -k1 -n -r |
head -10 |
awk '{ print $2 }'
#!/usr/bin/python
"""
Предположим, у нас есть access.log веб-сервера.
Как с помощью стандартных консольных средств найти десять IP-адресов,
от которых было больше всего запросов?
А как сделать это с помощью скрипта на Python?
"""
import sys
from collections import Counter
counter = Counter(
line.split(None, 1)[0]
for line in sys.stdin
)
freqdict = sorted(
counter.iteritems(),
key = lambda (k, v): v,
reverse = True
)
print "\n".join(
ip for ip, freq in
freqdict[:10]
)