next up previous contents
Next: 7.19 cut - напечатать Up: 7. Программы преобразования и Previous: 7.17 uniq - вывод

7.18 comm - сравнить два отсортированных файла

Использование программы:
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
Как видно имеются часть программ с именами, которые встречаются в обеих библиотеках. Как и в предыдущем примере, мы ничего не можем сказать о самих программах.


next up previous contents
Next: 7.19 cut - напечатать Up: 7. Программы преобразования и Previous: 7.17 uniq - вывод
Andrei Chevel
Andrei.Chevel@pnpi.spb.ru