列出两个普通数据集之间的差异和重叠

use*_*609 7 linux command-line shell text-processing

可能的重复:
Linux 工具将文件视为集合并对它们执行集合操作

我有两个数据集,A 和 B。每个数据集的格式是每行一个数字。例如,

12345
23456
67891
2345900
12345
Run Code Online (Sandbox Code Playgroud)

A 中的一些数据未包含在数据集 B 中。如何列出 A 中的所有这些数据,以及如何列出 A 和 B 共享的所有数据。我如何使用 Linux/UNIX 命令来做到这一点?

Tim*_*edy 16

使用comm命令。

如果您的列表在文件中listA并且listB

comm listA listB
Run Code Online (Sandbox Code Playgroud)

默认情况下,comm 将返回 3 列。仅在 listA 中的项目,仅在 listB 中的项目,以及两个列表共有的项目。

您可以抑制单个列,一个-1-2-3ARG。

  • 答案假设 listA 和 listB 已经排序。更通用的解决方案:`comm <(sort listA) <(sort listB)` (8认同)

归档时间:

查看次数:

19218 次

最近记录:

13 年,8 月 前