comm
命令在 Linux 中用于比较两个已排序的文件。它逐行比较文件,并显示两个文件之间的差异。comm
命令对于查找两个数据集之间的共同点和差异非常有用,尤其是在处理排序后的文本文件时。
基本语法
comm [选项] 文件1 文件2
- 文件1 和 文件2:这两个文件应该是预先排序过的,因为
comm
只能正确比较已排序的行。
输出格式
comm
命令的输出分为三列:
- 第一列:仅在文件1中出现的行。
- 第二列:仅在文件2中出现的行。
- 第三列:两个文件中都出现的行。
常用选项
-1
:不显示仅存在于文件1中的行。-2
:不显示仅存在于文件2中的行。-3
:不显示两个文件中都存在的行。--output-delimiter=STR
:使用指定的字符串作为输出的列分隔符,默认为制表符。
示例
- 比较两个已排序的文件:
comm file1.txt file2.txt
这将显示 file1.txt
和 file2.txt
的差异。
- 仅显示两个文件中都存在的行:
comm -12 file1.txt file2.txt
使用 -12
选项可以隐藏仅存在于一个文件中的行,只显示两个文件共有的行。
- 使用自定义分隔符:
comm --output-delimiter='|' file1.txt file2.txt
这将使用竖线 |
作为输出的列分隔符。
注意事项
- 为了正确比较,两个文件必须预先排序。如果文件未排序,
comm
命令的结果可能不准确。 comm
命令在处理大型文件时效率很高,因为它只逐行读取和比较。- 如果你想要比较未排序的文件,你可能需要先使用
sort
命令对文件进行排序,然后再使用comm
命令。
comm
命令是文本文件比较的一个有用工具,它提供了一种快速查看两个数据集差异的方法。