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

comm: Сравнение общих и уникальных строк двух отсортированных файлов

Команда comm сравнивает содержимое двух отсортированных файлов и выводит строки, присутствующие только в одном из файлов, а также строки, общие для обоих, в три столбца. Полезна для объединения или удаления дубликатов.

Обзор

comm — сокращение от 'common' (общий), это команда, предназначенная для сравнения строк между двумя уже отсортированными файлами. Она сравнивает содержимое файлов параллельно и отображает результат, разделенный на три столбца. Первый столбец показывает строки, присутствующие только в первом файле; второй столбец — строки, присутствующие только во втором файле; третий столбец — строки, общие для обоих файлов. Эта команда особенно мощна при сравнении отсортированных текстовых данных, таких как списки баз данных или списки идентификаторов пользователей.

Основные особенности

Основные особенности команды comm включают:

  • Используется для сравнения двух отсортированных файлов. (Если файлы не отсортированы, сначала следует использовать команду `sort`.)
  • Выводит результаты сравнения в три аккуратно разделенных столбца.
  • Позволяет легко увидеть общие черты и различия в текстовых данных.
  • Имеет функцию выборочного скрытия столбцов вывода, что позволяет использовать ее для различных целей.

comm против diff

comm и diff — оба инструмента для сравнения файлов, но они отличаются по принципу работы и назначению.

  • comm: Специализируется на отсортированных файлах и выводит общие и уникальные строки в три столбца. Не обнаруживает изменения (модификации содержимого строк).
  • diff: Может сравнивать неотсортированные файлы и подробно выводит все изменения на уровне строк (добавления, удаления, модификации).

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

Опции команды comm в основном используются для скрытия определенных столбцов.

1) Управление столбцами вывода

2) Справка

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

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

Описание:

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

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

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

Изучите функционал команды comm на различных примерах использования.

Сравнение общих и уникальных строк двух файлов

comm file1.txt file2.txt

Сравнивает содержимое двух отсортированных файлов в три столбца.

Вывод только строк, общих для двух файлов

comm -12 file1.txt file2.txt

Используйте опции `-1` и `-2`, чтобы скрыть строки, присутствующие только в первом и втором файлах, выводя только общие строки.

Вывод только уникальных строк двух файлов

comm -3 file1.txt file2.txt

Используйте опцию `-3`, чтобы скрыть общие строки, выводя только строки, уникальные для каждого файла.

Сравнение неотсортированных файлов

comm <(sort file1.txt) <(sort file2.txt)

Вы можете использовать команду `sort` с пайпом (`|`) вместе с `comm` для сравнения неотсортированных файлов.

Установка

comm поставляется по умолчанию в большинстве дистрибутивов Linux как часть пакета `coreutils`. Отдельная установка не требуется.

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

Собраны важные моменты, на которые следует обратить внимание при использовании команды comm.

Советы

  • Перед использованием comm **обязательно отсортируйте содержимое файлов.** Если файлы не отсортированы, вы не получите корректных результатов сравнения.
  • Чтобы проверить, отсортированы ли файлы, запустите `comm file1.txt file2.txt` и посмотрите, отличается ли вывод от ожидаемого, или попробуйте отсортировать файлы с помощью команды `sort` и затем сравнить их снова.
  • Синтаксис `<(...)` — это подстановка процесса, которая передает результат команды `sort` в `comm` как временный файл. Этот метод позволяет легко сравнивать неотсортированные файлы.

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

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


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