Как получить среднее количество повторений строки в файле? - PullRequest
0 голосов
/ 27 ноября 2009

Предположим, у меня есть файл из пяти строк с IP-адресами:

1.2.3.4
5.6.7.8
5.6.7.8
9.9.9.9
5.6.7.8

Мне нужно найти среднее количество повторений каждого IP-адреса подряд. В этом примере каждая последовательность одинаковых IP-адресов имеет длину 1, за исключением 5.6.7.8, которая повторяется дважды. Таким образом, для этого примера ответ (1 + 2 + 1 + 1) / 4 = 1,25.

Я пытаюсь выяснить, сколько раз в среднем пользователи нажимали кнопку загрузки на моем веб-сайте, прежде чем отказаться или понять, что они должны реагировать на предупреждение об установке аддона Firefox над страницей.

Можно ли это сделать из командной строки или мне нужно написать скрипт для этого? Я в порядке написания сценария для ruby, но мне интересно, можно ли это сделать с помощью умного oneliner.

Ответы [ 2 ]

2 голосов
/ 27 ноября 2009

В стандартной оболочке я бы сделал это так:

uniq -c intputfile | awk '{count++;sum+=$1} END{print count,"lines.","Average is:",sum/count}'
0 голосов
/ 27 ноября 2009

Быстро и грязно:

echo `cat test.txt | wc -l` / `uniq test.txt | wc -l` | bc -l

Возможно, вам сначала нужно установить bc (для вычисления с плавающей запятой).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...