Linux uniq

  1. root@Fcant:~ $ cat ghostwu.txt
  2. 192.168.1.2
  3. 192.168.1.8
  4. 192.168.1.3
  5. 192.168.1.3
  6. 192.168.1.9
  7. 192.168.1.8
  8. 192.168.1.8
  9. 192.168.1.0
  10. 192.168.1.3
  11. root@Fcant:~ $ uniq ghosts.txt
  12. 192.168.1.2
  13. 192.168.1.8
  14. 192.168.1.3
  15. 192.168.1.9
  16. 192.168.1.8
  17. 192.168.1.0
  18. 192.168.1.3

去除连续的重复行。

-u:只保留文件中的唯一

  1. root@Fcant:~ $ uniq -u ghosts.txt
  2. 192.168.1.2
  3. 192.168.1.8
  4. 192.168.1.9
  5. 192.168.1.0
  6. 192.168.1.3

-c:去重复,并计算每行出现的次数

  1. root@Fcant:~ $ uniq -c ghosts.txt
  2. 1 192.168.1.2
  3. 1 192.168.1.8
  4. 2 192.168.1.3
  5. 1 192.168.1.9
  6. 2 192.168.1.8
  7. 1 192.168.1.0
  8. 1 192.168.1.3
  9. root@Fcant:~ $ cat -n ghosts.txt
  10. 1 192.168.1.2
  11. 2 192.168.1.8
  12. 3 192.168.1.3
  13. 4 192.168.1.3
  14. 5 192.168.1.9
  15. 6 192.168.1.8
  16. 7 192.168.1.8
  17. 8 192.168.1.0
  18. 9 192.168.1.3

可以用sort命令排序后,再去重复,得到的结果 也是唯一的

  1. root@Fcant:~ $ sort -n ghosts.txt | uniq -c
  2. 1 192.168.1.0
  3. 1 192.168.1.2
  4. 3 192.168.1.3
  5. 3 192.168.1.8
  6. 1 192.168.1.9

-d: 只显示重复的行

  1. root@Fcant:~ $ uniq -d ghosts.txt
  2. 192.168.1.3
  3. 192.168.1.8