Почему эта команда не сортируется на основе индекса uniq?

У меня есть строки в журнале, похожие на:

2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED. (10.10.10.11:61618) is not a trusted source. 2015/11/02-07:55:40.515 INFO failed with ERR_AUTHORIZATION_REQUIRED. (10.10.10.11:51836) is not a trusted source. 2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED. (10.10.10.10:61615) is not a trusted source. 2015/11/02-07:55:40.515 INFO failed with ERR_AUTHORIZATION_REQUIRED. (10.10.10.10:51876) is not a trusted source. 2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED. (10.10.10.10:61614) is not a trusted source. 2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED. (10.10.10.15:61614) is not a trusted source. 2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED. (10.10.10.15:61618) is not a trusted source. 2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED. (10.10.10.15:61613) is not a trusted source. 

Итак, я попробовал следующую команду, чтобы получить счет каждого uniq IP, отсортированный:

 grep ERR_AUTHORIZATION_REQUIRED file.log | awk '{print $6}' | cut -s -d ':' -f1 | tr -d '(' | sort | uniq -c 

Результат, который я получаю, похож на следующий:

 3 10.10.10.10 2 10.10.10.11 3 10.10.10.15 

Таким образом, это похоже на то, что IP-адрес сортируется до применения uniq -c (что имеет смысл с учетом команды), но если я поменяю команды uniq и sort , каждый IP будет напечатан с числом 1 .

One Solution collect form web for “Почему эта команда не сортируется на основе индекса uniq?”

Из uniq manpage:

 DESCRIPTION Discard all but one of successive identical lines from INPUT (or standard input), writing to OUTPUT (or standard output). 

Здесь критическое слово «последовательное». Он не ищет дубликаты в любой точке потока, а только те, которые сразу же следуют. Сортировка заставляет все дубликаты быть рядом друг с другом, поэтому их можно удалить (и подсчитать).

  • Как найти повторяющиеся строки в текстовом файле, в то время как некоторые могут быть прокомментированы или иметь разные токены в начале?
  • linux сравнить текстовый файл
  • Использование Uniq -c с регулярным выражением или подсчет количества удаленных строк
  • Как постоянно контролировать количество вхождений, проходящих через трубу
  • Учет уникальных пользователей в файле wtmp
  • Unix - подсчет уникальных IP-адресов, сортировка их по частоте и сортировка по IP, когда количество повторений одинаково
  • Помощь с модификацией команды
  • Awk / bash Keep line containg только 3 поля
  • Удаление строк с одним общим полем
  • Uniq не удалит дубликат
  • Как совместить число в одном файле с именем в другом файле?
  • Найти дубликаты по столбцу в файле
  • Linux и Unix - лучшая ОС в мире.