Команды Linux · 2 min read · Sep 16, 2025
Учебник по команде comm в Linux для начинающих (5 примеров)
Команда comm в Linux позволяет пользователям сравнивать два отсортированных файла построчно. В этом учебнике мы обсудим этот инструмент командной строки, используя простые для понимания примеры. Но прежде чем мы это сделаем, обратите внимание, что все примеры, упомянутые в этом учебнике, были протестированы на Ubuntu 16.04LTS.
Команда comm в Linux
Следующие примеры должны дать вам хорошее представление о том, как работает инструмент ‘comm’.
1. Как сравнить два отсортированных файла с помощью comm
Чтобы сравнить два отсортированных файла с помощью ‘comm’, вам нужно просто передать их имена в качестве аргументов инструменту командной строки. Вот общая синтаксис:
comm [name-of-first-file] [name-of-second-file]Например, предположим, что ‘file1’ и ‘file2’ - это два файла в нашем случае. Первый содержит следующие строки:
001
056
127
258в то время как второй содержит следующие строки:
002
056
167
369Теперь вот вывод команды ‘comm’ в этом случае:
comm file1 file2
Итак, вы можете видеть, что вывод состоит из трех столбцов. Первый содержит строки, уникальные для ‘file1’, второй содержит строки, уникальные для ‘file2’, а третий столбец содержит строки, общие для обоих файлов.
2. Как подавить отдельные столбцы в выводе команды comm
Если вы хотите, вы можете подавить отдельные столбцы в выводе команды comm. Для этого у вас есть три параметра командной строки: -1, -2 и -3. Как вы могли догадаться, эти числа представляют столбцы, которые вы хотите подавить.
Например, вот команда для подавления третьего столбца в нашем случае:
comm -3 file1 file2
Итак, вы можете видеть, что третий столбец был подавлен.
Обратите внимание, что вы можете подавить несколько столбцов с помощью одной команды. Например:
comm -12 file1 file2подавит как первый, так и второй столбцы.
3. Как заставить comm сравнивать файлы, которые не отсортированы
Как мы знаем, команда comm работает только с отсортированными файлами. Если она обнаружит, что файл не отсортирован, в выводе появляется сообщение, которое сообщает пользователю об этом. Например, мы поменяли местами первую и вторую строки в ‘file1’ и затем сравнили его с ‘file2’. Вот какой был вывод:

Итак, вы можете видеть, что команда выдала сообщение о том, что ‘file1’ не отсортирован. Теперь, если вы не хотите, чтобы инструмент проверял, отсортирован ли ввод, вы можете использовать параметр –nocheck-order.
comm --nocheck-order file1 file2
Итак, вы можете видеть, что сообщение, которое ранее отображалось, было подавлено.
Обратите внимание, что в случае, если вы хотите явно сказать команде comm выполнить проверку сортировки на входных файлах, вы можете использовать параметр –check-order.
4. Как разделить столбцы вывода comm с помощью пользовательской строки
По умолчанию столбцы в выводе команды comm разделены пробелами. Однако, если вы хотите, вы можете изменить это и использовать строку по вашему выбору в качестве разделителя. Это можно сделать с помощью параметра –output-delimiter. Этот параметр требует от вас указать строку, которую вы хотите использовать в качестве разделителя.
comm --output-delimiter=STR file1 file2Например, мы использовали символ плюс (+) в качестве разделителя.

5. Как сделать так, чтобы строки вывода comm заканчивались на NUL
Строки вывода команды comm по умолчанию заканчиваются на новую строку. Однако, если вы хотите, вы можете сделать так, чтобы они заканчивались на NUL. Это можно сделать с помощью параметра командной строки -z.
comm -z file1 file2Заключение
Команда comm не предлагает много функций - мы охватили почти все ее параметры командной строки здесь. Так что просто поймите и практикуйте все, что мы обсудили в этом учебнике, и вы будете готовы использовать инструмент в своих повседневных задачах. В случае любых сомнений или вопросов, обратитесь к странице man команды или оставьте комментарий ниже.
Get new posts in your inbox
No spam. Unsubscribe anytime.