Шпаргалка: сортировать строки и считать повторы
Выберите текстовое или числовое сравнение, сгруппируйте дубли и сохраните исходную последовательность отдельно. Различайте uniq и глобальную уникальность.
Когда открыть эту шпаргалку
Список участников и хронологический журнал нельзя автоматически обрабатывать одинаково. Для списка часто нужна уникальность без исходного порядка; для журнала порядок является частью информации. Сформулируйте, что именно должно остаться после преобразования.
Выбор команды
roster.txt — читаемый источник. Вывод сортировки идёт в stdout; перенаправление обратно в тот же файл предварительно обнулит его.
| Что выяснить | Команда или выражение | Как читать результат |
|---|---|---|
| Воспроизводимый текстовый порядок | LC_ALL=C sort roster.txt | Сравнение в локали C; не лингвистическая сортировка русского текста. |
| Числовой порядок целых строк | sort -n numbers.txt | Числовая модель, не произвольные даты или единицы измерения. |
| Одна копия каждой строки | LC_ALL=C sort -u roster.txt | Исходный порядок теряется. |
| Количество каждой полной строки | LC_ALL=C sort roster.txt | LC_ALL=C uniq -c | Сначала равные строки должны оказаться рядом. |
| Только соседние повторы | uniq -d roster.txt | Без сортировки одинаковые разнесённые записи принадлежат разным группам. |
Короткая последовательность
Поток содержит три появления fern и одно oak. Подсчёт относится к полным строкам, а не к словам внутри них.
printf '%s\n' fern oak fern fern | LC_ALL=C sort | LC_ALL=C uniq -cПроверка вывода
Результат содержит счётчик 3 для fern и 1 для oak. Если нужна первоначальная очередность появления уникальных записей, sort -u не подходит. Ключ -k меняет понятие равенства для sort, поэтому его нельзя незаметно подставлять в задачу о равенстве целых строк.
Границы применения
Флаги сортировки и локаль влияют на сравнение. Числовые значения с разными форматами, заголовок таблицы и даты требуют отдельного правила. Не используйте внешнее представление счётчика uniq как фиксированный универсальный формат файла без явного соглашения.
Технические источники
Использованы для проверки поведения. Объяснения и учебные сценарии созданы для проекта.
- Руководство sort(1)
- Руководство uniq(1)
Проверка текста: 2026-09-11. Нативное исполнение на всей матрице дистрибутивов ещё не подтверждено.
Примеры для собственной Linux-системы с Bash и указанными утилитами. Наличие пакетов и набор опций проверьте в установленной версии; браузерный терминал поддерживает только своё подмножество.
От материала к практике
Выберите следующую тему в каталоге Linux или проверьте знакомые команды в учебном терминале.