0

例如:文件是

The
Second one.
Second one.
Second
Third
Third

我使用'uniq -f 1 uniq.txt',输出是

The
Second one.
Second

作为语法,我忽略了第一个字段,输出应该是:

Second one.
Second

为什么???!!!!

4

3 回答 3

1

你得到的结果是正确的,因为你使用了 tool uniq

注意:'uniq' 不会检测重复的行,除非它们是相邻的。

线TheSecond不相邻。

对于行:

Second
Third
Third

它起作用了,因为它们是相邻的。

如果您更改文件,如下所示:

Second one.
Second one.
Second
The
Third
Third

您的 uniq 命令将给出预期的结果。

这就是你想知道的原因。

于 2013-11-12T10:07:20.033 回答
0

要获得最佳结果,请始终在运行sort之前运行uniq,因为uniq只能比较相邻行。

于 2013-11-12T10:15:53.590 回答
0

该术语field与 for 具有相同的含义awk:它指的是一个以白色字符(或行首/行尾)为界的单词。整行称为一条记录。-f在command的选项上下文中uniq,它只是意味着您忽略每行的第一列。

相反,请tail按如下方式使用:

'uniq -f 1 uniq.txt | tail -n +2'
于 2013-11-12T10:07:45.130 回答