Выбор ответа Junior grep, sed, awk, find, xargs спрашивают часто обновлено

Почему uniq -c без sort врёт

Вопрос

Почему в awk '{print $1}' access.log | uniq -c один и тот же IP встречается в результате несколько раз?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: uniq схлопывает только соседние строки, нужен sort. uniq сравнивает строку только с предыдущей.

Варианты ответа

  1. uniq схлопывает только соседние строки, нужен sortправильный ответ
  2. uniq учитывает регистр и пробелы в конце строк
  3. awk добавляет к каждой строке её номер, и строки разные
  4. uniq -c считает символы в строке, а не повторы

Разбор

uniq сравнивает строку только с предыдущей. Если запросы одного IP перемежаются с другими, получится несколько групп. Правильно: sort | uniq -c. Регистр у IP не играет роли, awk номеров не добавляет, а -c считает именно повторы строк.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.