通过`uniq -d`找到重复的匹配

时间:2009-07-25 11:20:32

标签: uniq

我的数据为/ 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

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:1)

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

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

哦,这是你的问题:

 cat /tmp/1 | sort | uniq -d

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

答案 2 :(得分:1)

awk '{_[$0]++}END{for(i in _)if(_[i]>1) print i}' /tmp/1

或只是

awk '_[$0]++ == 1' file