Ответ 1
С чистым awk
:
awk '{a[$0]++}END{for(i in a){if(a[i] > 2){print i}}}' a.txt
Он выполняет итерацию по файлу и подсчитывает события каждого IP-адреса. В конце файла он выводит каждый IP-адрес, который встречается более чем в 2 раза.
У меня есть файл вроде этого:
80.13.178.2
80.13.178.2
80.13.178.2
80.13.178.2
80.13.178.1
80.13.178.3
80.13.178.3
80.13.178.3
80.13.178.4
80.13.178.4
80.13.178.7
Мне нужно отображать уникальные записи для повторяющейся строки (похожие на uniq -d), но только записи, которые встречаются больше, чем дважды (в два раза это пример, позволяющий определить нижний предел.)
Результат для этого примера должен быть таким, если вы ищете записи с тремя или более вхождениями:
80.13.178.2
80.13.178.3
С чистым awk
:
awk '{a[$0]++}END{for(i in a){if(a[i] > 2){print i}}}' a.txt
Он выполняет итерацию по файлу и подсчитывает события каждого IP-адреса. В конце файла он выводит каждый IP-адрес, который встречается более чем в 2 раза.
Подайте вывод с uniq -cd
на awk
sort test.file | uniq -cd | awk -v limit=2 '$1 > limit{print $2}'