Использование программы:
comm [option] file1 file2
предполагается, что оба вводных файла file1 и file2 уже
являются отсортированными файлами. Без параметров option программа
comm производит вывод в три колонки. Самая левая колонка состоит
из строк, которые содержатся только в файле с именем file1. Колонка 2
(средняя) состоит из строк, которые содержатся только в файле с именем file2. Третья колонка состоит из строк, которые являются общими для файлов
с именами file1 и file2.
Колонки разделены знаками <TAB>.
Могут использоваться следующие значения параметров: -1, -2, -3, которые означают запрет печати соответствующей колонки (нумерация колонок - слева направо).
Один из примеров использования состоит в сравнении содержимого каталога или
библиотеки. Например, вы хотите сравнить два похожих на первый
взгляд каталога: /lib и /usr/lib
ls -1 /lib > /tmp/L_lib ls -1 /usr/lib > /tmp/l_usr_lib comm /tmp/L_lib /tmp/l_usr_lib | less \end У меня получился выводной файл размером 335 строк и я обнаружил только один файл, который находился в обоих каталогах. Фрагмент вывода показан ниже \\ \begin{verbatim} ... libc.a libc.so libc.so.5 libc.so.5.4.38 libc.so.6 libc5-compat libc_nonshared.a libcom_err.so.2 libcom_err.so.2.0 ... \end{verbatom} В третьей колонке оказался единственный файл с именем {\tt libc5-compat}. Естественно, что это ничего не говорит о содержании файла с данным именем в разных каталогах. Аналогичным образом можно сравнивать содержимое двух библиотек \begin{verbatim} ar -t /usr/lib/libc.a | sort > Dc ar -t /usr/lib/libm.a | sort > Dm comm Dc DmПоказываем лишь фрагмент вывода
s_ceill.o s_chown.o s_copysign.o s_copysignf.o s_copysignl.o s_cos.o s_cosf.o s_cosl.oКак видно имеются часть программ с именами, которые встречаются в обеих библиотеках. Как и в предыдущем примере, мы ничего не можем сказать о самих программах.