Главная > Обработка текста и поиск > 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`.

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

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


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