Команды / Справочник

Команда uniq: соседние повторы и подсчёт групп

Узнайте, почему uniq не удаляет все повторения во всём файле. Разберите соседние группы, счётчики -c и выбор повторяющихся либо одиночных строк.

Начальный10 минОбщие принципы LinuxGNU Coreutils · documented stable optionsDramtezi Simulator 0.1

Назначение команды

uniq объединяет последовательные одинаковые строки. Если между двумя одинаковыми записями находится другая строка, это разные группы. Поэтому команда отвечает на вопрос о соседних повторениях, а не о глобальной уникальности произвольного списка.

Синтаксис и учебный пример

Обычная форма — uniq [ОПЦИИ] [ВХОД [ВЫХОД]]. Сначала определите, можно ли менять порядок. Сортировка перед uniq собирает одинаковые строки вместе, но изменяет последовательность. В событийном журнале соседние дубли могут иметь иной смысл, чем одинаковые записи в разные моменты.

Виртуальный терминал
echo cedar > repeats.txt
echo cedar >> repeats.txt
echo maple >> repeats.txt
uniq -c repeats.txt

Проверка: Счётчики групп: 2 для cedar и 1 для maple.

Опции и варианты записи

Таблица разделяет основные формы записи. Ниже отдельно перечислены пределы виртуальной команды.

ЗаписьСмысл
-cПечатать количество строк в каждой соседней группе.
-dПечатать только группы, в которых больше одной строки.
-uПечатать только группы из одной строки.
-iИгнорирование регистра в реальной GNU uniq; не поддерживается учебной реализацией.

Вывод, ошибки и статус

Даже если выбранных групп нет, успешная uniq возвращает 0: отсутствие результата не является поисковым статусом 1, как у grep. Счётчики -c предваряют строки, поэтому дальнейшая обработка должна учитывать новый формат. Ошибки чтения или записи сообщаются отдельно.

Как избежать неверного результата

Для общего списка повторов можно использовать sort input | uniq -d, если порядок не требуется сохранить. Для подсчёта повторов подряд сортировка, напротив, испортит задачу. Не путайте uniq -u с обычным удалением лишних копий: одиночный режим полностью исключает повторившиеся группы.

Реальная система и учебная модель

В тренажёре доступны -c, -d, -u и один входной файл либо stdin. Второй файловый аргумент для выхода не принимается: используйте отдельное перенаправление. Сравниваются целые строки с учётом регистра; пропуск полей, символов и NUL-разделители отсутствуют.

Технические источники

Использованы для проверки поведения. Объяснения и учебные сценарии созданы для проекта.

  • GNU Coreutils — uniq

Проверка текста: 2026-09-11. Нативное исполнение на всей матрице дистрибутивов ещё не подтверждено.

Основные понятия общие для Linux. Состав утилит, версии и системные настройки зависят от окружения.

От материала к практике

Выберите следующую тему в каталоге Linux или проверьте знакомые команды в учебном терминале.

Поиск по Linux

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

Навигация