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


Banner.Novgorod.Ru