Обзор
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` как временный файл. Этот метод позволяет легко сравнивать неотсортированные файлы.