# Порядок и дубли: sort и uniq

Курс: Claude Code и терминал: с 0 — https://zero2claude.ru/learn/code-terminal
Канонический URL: https://zero2claude.ru/learn/code-terminal/3-9-sort-uniq

sort расставляет строки по алфавиту, uniq убирает повторы. Через пайп они вместе наводят порядок в списке.

Представь список: имена в случайном порядке, да ещё и с повторами. Глазами разбирать неудобно. В терминале для этого есть две команды-напарника — `sort` и `uniq`.

## sort — расставить по порядку

`sort` берёт строки и выстраивает их по алфавиту:

```
sort names.txt
```

Строки вернутся отсортированными — сверху вниз по алфавиту. Нужен обратный порядок? Добавь флаг `-r`:

```
sort -r names.txt
```

Сам файл при этом не меняется — `sort` только показывает отсортированную версию. Это важно: команда ничего не портит, ею можно пользоваться смело.

## uniq — убрать повторы

`uniq` убирает **соседние** одинаковые строки, оставляя по одной:

```
uniq names.txt
```

Ключевое слово — «соседние». `uniq` смотрит только на строки, стоящие рядом. Если одинаковые имена разбросаны по файлу, он их не заметит.

## Связка sort | uniq

Поэтому `uniq` почти всегда идёт **после** `sort` — через пайп. Сначала `sort` собирает одинаковые строки вместе, а потом `uniq` схлопывает их:

```
sort names.txt | uniq
```

Результат — отсортированный список без повторов. Это одна из самых частых связок в терминале: «наведи порядок и убери лишнее».

Хочешь узнать, **сколько** раз встречалась каждая строка? На настоящем компьютере есть `uniq -c`. В нашем тренажёре достаточно связки `sort | uniq` — именно её спрашивают в испытаниях.

## Попробуй

В файле `names.txt` имена идут вперемешку и с повторами. Отсортируй список и убери дубликаты: `sort names.txt | uniq`. Когда в команде появятся и `sort`, и `uniq`, урок зачтётся.
