2

我的数据为 /tmp/1

9367543
9105616
9108177
8948074
8860323
9170406
9105616

我跑了,我什么也没得到

cat /tmp/1 | uniq -d

这很奇怪,因为uniq -d应该

-d      Only output lines that are repeated in the input.

你怎么能用uniq -d

4

3 回答 3

6

在使用 uniq 之前,您必须对数据进行排序。它仅删除/检测相邻行上的重复项。

于 2009-07-25T11:33:18.543 回答
1

试试这个仔细检查,它会输出任何重复的行:

  cat /tmp/1 |  awk 'seen[$0]++ == 1'

哦,这是你的问题:

 cat /tmp/1 | sort | uniq -d

在运行 uniq 之前对其进行排序!

于 2009-07-25T11:25:09.747 回答
1
awk '{_[$0]++}END{for(i in _)if(_[i]>1) print i}' /tmp/1

要不就

awk '_[$0]++ == 1' file
于 2009-07-25T11:34:06.327 回答