comm - 选择或拒绝两个文件共有的行
/usr/bin/comm [-123] [--check-order |--nocheck-order][--output-delimiter=STR] [--help] file1 file2
comm 的作用是读取应该按当前语言环境下的整理序列排序的两个文件 file1 和 file2,生成三个文本列作为输出:
仅 file1 中有的行。
仅 file2 中有的行。
两个文件中都有的行。
如果任一文件中的行未按当前语言环境下的整理序列排序,则行为取决于指定的顺序选项。
不会生成有关排序顺序的错误。输出将无效。
如果 file1 或 file2 中的任何行未按排序顺序显示,则将出现错误,无论 file1 中的行是否与 file2 中的相应行匹配。
如果未指定顺序选项,则缺省行为不检查输入的排序顺序。这与指定 –-nocheck-order 选项相同。
如果 file1 或 file2 为 -,comm 将从当前位置开始使用标准输入。
支持以下选项:
不输出仅 file1 中有的行对应的列。
不输出仅 file2 中有的行对应的列。
不输出 file1 和 file2 中重复的行对应的列。
即使 file1 中的所有行都与 file2 中的相应行匹配,仍检查输入是否已正确排序。
不检查输入是否已正确排序。这是缺省行为。
使用 STR 分隔列。
显示命令用法并退出。
支持下列操作数:
要比较的第一个文件的路径名。如果 file1 为 -,则使用标准输入。
要比较的第二个文件的路径名。如果 file2 为 -,则使用标准输入。
如果 file1、file2 和 file3 每个都包含已排序的实用程序列表,则命令:
example% comm -23 file1 file2 | comm -23 - file3
将列显 file1 中未由其他两个文件指定的实用程序的列表。命令:
example% comm -12 file1 file2 | comm -12 - file3
将列显全部三个文件均指定的实用程序的列表。命令:
example% comm -12 file2 file3 | comm -23 -file1
将列显由 file2 和 file3 指定但未在 file1 中指定的实用程序的列表。
有关影响 comm 执行的以下环境变量的说明,请参见 environ(7):LANG、LC_ALL、LC_COLLATE、LC_CTYPE、LC_MESSAGES 和 NLSPATH。
将返回以下退出值:
所有输入文件均已按要求成功输出。
出现错误。
有关下列属性的说明,请参见 attributes(7):
|
cmp(1)、diff(1)、sort(1)、uniq(1)、attributes(7)、environ(7)、standards(7)