Главная > Обработка текста и поиск > uniq

uniq: Удаление и подсчет повторяющихся строк

Команда uniq используется для поиска и удаления последовательно повторяющихся строк в текстовом файле или стандартном вводе, а также для подсчета количества повторяющихся строк с использованием определенных опций. В частности, опция -c полезна для анализа данных, так как она выводит количество повторений каждой строки перед самой строкой.

Обзор

Команда `uniq` часто используется в конвейере (|) с командой `sort` для эффективной обработки повторяющихся строк в отсортированных данных. Опция `-c` позволяет легко определить количество повторяющихся строк.

Основные возможности

  • Обработка последовательно повторяющихся строк
  • Подсчет повторяющихся строк (-c)
  • Игнорирование регистра (-i)
  • Сравнение с игнорированием определенных полей или символов

Основные опции

Функции

Способы сравнения

Сгенерированная команда:

Комбинируйте команды.

Описание:

`uniq` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

Подсчет частоты слов в файле

sort words.txt | uniq -c

Подсчитывает, сколько раз встречается каждое слово (строка) в файле `words.txt`, и выводит результат. Поскольку `uniq` обрабатывает только последовательные дубликаты, сначала необходимо использовать `sort`, чтобы сгруппировать все дубликаты вместе.

Поиск наиболее часто встречающихся строк в лог-файле

cat log.txt | sort | uniq -c | sort -nr

Подсчитывает количество повторяющихся строк в лог-файле, сортирует результат по убыванию количества (числа) и выводит наиболее часто встречающиеся строки сверху.

Подсчет повторяющихся строк с игнорированием регистра

echo -e "Apple\napple\nBanana\napple" | sort | uniq -ci

Считает дубликаты из стандартного ввода, рассматривая 'Apple' и 'apple' как одинаковые, и выводит результат.

Подсчет повторяющихся строк с игнорированием определенного поля

sort -k2 data.txt | uniq -f 1 -c

Игнорирует первое поле файла и сравнивает, начиная со второго поля, чтобы подсчитать количество повторяющихся строк и вывести результат. (Например, если содержимое `data.txt` это `ID1 apple`, `ID2 apple`, то 'apple' будет посчитано как 2).

Советы и примечания

Команда `uniq` по умолчанию обрабатывает только 'последовательно' повторяющиеся строки. Поэтому, чтобы удалить дубликаты или подсчитать их во всем файле, сначала необходимо отсортировать строки с помощью команды `sort`.

Советы по использованию

  • Использование с sort: Поскольку uniq обрабатывает только последовательные дубликаты, для обработки дубликатов во всем файле необходимо сначала отсортировать его с помощью sort. Пример: sort file.txt | uniq -c
  • Поиск наиболее часто встречающихся элементов: Результат uniq -c можно передать в sort -nr, чтобы отсортировать наиболее часто встречающиеся элементы в порядке убывания. Пример: sort file.txt | uniq -c | sort -nr
  • Учет производительности: Для очень больших файлов следует учитывать использование памяти командами sort и uniq. При необходимости можно указать временный каталог с помощью опции -T команды sort.

Связанные команды

Функционально схожие или часто используемые команды.



Те же команды в категории