张芷铭的个人博客

comm 逐行比较两个已排序文件,输出三列:仅文件1有的、仅文件2有的、两者共有的行。

输出格式

含义
第1列仅在文件1中
第2列仅在文件2中
第3列两者共有

核心选项

选项作用
-1隐藏第1列
-2隐藏第2列
-3隐藏第3列

常用组合

1
2
3
comm -12 file1 file2  # 只显示交集(两者共有)
comm -23 file1 file2  # 只显示文件1特有
comm -13 file1 file2  # 只显示文件2特有

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# fruits_A.txt: Apple, Banana, Orange
# fruits_B.txt: Apple, Grape, Orange

comm fruits_A.txt fruits_B.txt
# 输出:
#         Apple
# Banana
#         Grape
#         Orange

comm -12 fruits_A.txt fruits_B.txt
# 输出:Apple, Orange

注意

文件必须预先排序

1
2
sort unsorted.txt > sorted.txt
comm sorted1.txt sorted2.txt

使用 --check-order 检查排序,--nocheck-order 跳过检查。

Comments