Построение распределения IP-адресов с помощью счетчиков

Я пытаюсь получить результат распределения в стиле dtrace при выполнении awks для больших файлов журнала после DDoS, чтобы его было легче читать:

# tail -1000 access_log | awk '{ print $1 }' | sort | uniq -c | sort -nr | awk '{printf("\n%s ",$0) ; for (i = 0; i<$1 ; i++) {printf("*")};}'

  43 192.168.0.1 *******************************************
  38 192.168.0.2 **************************************

Надеюсь, это может выглядеть примерно так:

       value  ------------- Distribution ------------- count    
 192.168.0.1  @@@@@@@@@                                43 
 192.168.0.2  @@@@@@@@                                 38 

Где @ ' s - это меньшая сводка количества и выполнения * для числа. Автоматическое масштабирование при каждом запуске было бы дополнительным бонусом по сравнению с тем, что мне приходилось делать математику, чтобы выяснить, как ранжировать каждый счет.

5
задан Jacques Marneweck 26 April 2011 в 22:36
поделиться