По умолчанию sort сортирует как текст — 10 окажется перед 2. Числовая сортировка по конкретному полю:

sort -t: -k3,3n /etc/passwd   # сортировка по UID (3-е поле, разделитель :)

uniq -c считает повторы соседних строк — но только соседних, поэтому сначала sort:

sort access.log | uniq -c | sort -rn | head -10

Топ-10 IP из access.log без единого awk:

awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10

uniq -u — наоборот, только строки без дублей (дедупликация в обратную сторону):

sort file.txt | uniq -u   # что встретилось ровно один раз

#linux #bash #sysadmin