linux – 提取2组/文件之间的唯一值

在linux / shell env中工作,我该如何完成以下工作:

文本文件1包含:

1
2
3
4
5

文本文件2包含:

6
7
1
2
3
4

我需要提取文件2中不在文件1中的条目.在这个例子中为’6’和’7′.

如何从命令行这样做?

非常感谢!

$awk 'FNR==NR {a[$0]++; next} !a[$0]' file1 file2
6
7

代码如何工作的说明:

>如果我们正在处理file1,请跟踪我们看到的每一行文本.
>如果我们正在处理file2,并且没有看到行文本,然后打印它.

详细说明:

> FNR是当前文件的记录号
NR是当前所有输入文件的总体记录号
> FNR == NR只有当我们读取file1时才是真的
> $0是当前文本行
> a [$0]是将密钥设置为当前文本行的哈希
> a [$0]曲目,我们看到了当前的文本行
>!a [$0]只有当我们没有看到行文本时才是真的
>如果上述模式返回true,则打印文本行,这是没有给出显式操作时的默认awk行为

翻译自:https://stackoverflow.com/questions/4717250/extracting-unique-values-between-2-sets-files

转载注明原文:linux – 提取2组/文件之间的唯一值