Обзор
Команда `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`.