Шпаргалки / Объяснение

Шпаргалка: сортировать строки и считать повторы

Выберите текстовое или числовое сравнение, сгруппируйте дубли и сохраните исходную последовательность отдельно. Различайте uniq и глобальную уникальность.

Начальный6 минОбщие принципы LinuxGNU Coreutils · documented stable optionsBash · pipeline semantics

Когда открыть эту шпаргалку

Список участников и хронологический журнал нельзя автоматически обрабатывать одинаково. Для списка часто нужна уникальность без исходного порядка; для журнала порядок является частью информации. Сформулируйте, что именно должно остаться после преобразования.

Выбор команды

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. Подсчёт относится к полным строкам, а не к словам внутри них.

Локальная Linux-система
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 или проверьте знакомые команды в учебном терминале.

Поиск по Linux

Поиск локальный. ↑ ↓ — перейти к результату, Enter — открыть.

Навигация