From: http://blog.163.com/redhumor@126/blog/static/1955478420123119218332/

进行排序之后,您会发现有些行是重复的。有时候该重复信息是不需要的,可以将它除去以节省磁盘空间。不必对文本行进行排序,但是您应当记住
uniq
在读取行时会对它们进行比较并将只除去两个或更多的连续行。下面的示例说明了它实际上是如何工作的:

清单 1. 用 uniq 除去重复行

              $ cat happybirthday.txt  Happy Birthday to You!  Happy Birthday to You!  Happy Birthday Dear Tux!  Happy Birthday to You!          $ sort happybirthday.txt   Happy Birthday Dear Tux!  Happy Birthday to You!  Happy Birthday to You!  Happy Birthday to You!          $ sort happybirthday.txt | uniq  Happy Birthday Dear Tux!  Happy Birthday to You!        

警告:请不要使用
uniq
或任何其它工具从包含财务或其它重要数据的文件中除去重复行。在这种情况下,重复行几乎总是表示同一金额的另一个交易,将它除去会给会计部造成许多困难。千万别这么干!

有关 uniq 的更多信息

本系列文章介绍了文本实用程序,它对在手册页和信息页找到的信息作了补充。如果您打开新的终端窗口并输入
man uniq

info uniq
,或者打开新的浏览器窗口并查看 位于 gnu.org 的 uniq 手册页,那么就可以了解更多的相关信息。

如果您希望您的工作轻松点,比如只显示唯一的或重复的行,那么该怎么办呢?您可以用
-u
(唯一)和
-d
(重复)选项来做到这一点,例如:

清单 2. 使用 -u 和 -d 选项

              $ sort happybirthday.txt | uniq -u  Happy Birthday Dear Tux!          $ sort happybirthday.txt | uniq -d  Happy Birthday to You!        

您还可以用
-c
选项从
uniq
中获取一些统计信息:

清单 3. 使用 -c 选项

              $ sort happybirthday.txt | uniq -uc        1 Happy Birthday Dear Tux!          $ sort happybirthday.txt | uniq -dc        3 Happy Birthday to You!        

就算
uniq
对完整的行进行比较,它仍然会很有用,但是那并非该命令的全部功能。特别方便的是:使用
-f
选项,后面跟着要跳过的字段数,它能够跳过给定数目的字段。当您查看系统日志时这非常有用。通常,某些项要被复制许多次,这使得查看日志很难。使用简单的
uniq
无法完成任务,因为每一项都以不同的时间戳记开头。但是如果您告诉它跳过所有的时间字段,您的日志一下子就会变得更加便于管理。试一试
uniq -f 3 /var/log/messages
,亲眼看看。

还有另一个选项
-s
,它的功能就像
-f
一样,但是跳过给定数目的字符。您可以一起使用
-f

-s

uniq
先跳过字段,再跳过字符。如果您只想使用一些预先设置的字符进行比较,那么该怎么办呢?试试看
-w
选项。

shell除去重复的行——uniq命令相关推荐

  1. linux 下的文本处理——除去重复行uniq命令

    原文地址:http://blog.51yip.com/shell/1022.html 一,uniq干什么用的 文本中的重复行,基本上不是我们所要的,所以就要去除掉.linux下有其他命令可以去除重复行 ...

  2. shell脚本编写之常用基础命令(diff、patch、cut、sort、uniq、与||、test、tr)

    文章目录 一.shell(计算机壳层) 二.shell中常用的基本命令 1.diff 命令(比对文件) 1.1 基本概念以及命令的格式 1.2 结果读取方式 1.3 diff中常用的参数 2.patc ...

  3. shell脚本编写时的必备命令(文章末尾含几个简单应用的脚本实例)

    一.书写shell脚本时的常用命令 脚本是一种解释型语言.一般以 .sh 结尾用shell脚本保存执行动作:用脚本判定命令的执行条件:用脚本来实现动作的批量执行. ##脚本的执行一般有两种方法(这里以 ...

  4. 【shell脚本开发技术】linux中shell script脚本开发编程常用命令与脚本速记指南

    shell script #!/bin/bash # do something run shell script sh script.shorchmod a+x script.sh ./script. ...

  5. 【Linux】一步一步学Linux——uniq命令(54)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 uniq - 删除排序文件中的重复行 uniq命令用于报告 ...

  6. linux uniq统计每一行的重复次数,Linux uniq总结

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? uniq命令用于报告或忽略文件中的重复行. 命令功能 uniq命令可以轻松地从文件中找到重复的行,而且可以删除重复项,显 ...

  7. uniq命令注意事项,检查重复行的时候,只会检查相邻的行。

    今天在使用uniq命令统计数量时,uniq -c总是得不到想要的效果,相同的行没有合并,例如 后来在http://ju.outofmemory.cn/entry/78365才看到,原来uniq检查重复 ...

  8. shell特殊符号cut命令,sort、wc、uniq命令,tee、tr、split命令

    shell特殊符号cut命令 特殊符号 "*" 通配符,代表零个或多个字符 "?" 代表一个字符 "#" 注释字符 "\" ...

  9. 实例解说Linux命令行uniq (转)

    uniq [选项] 文件 说明:这个命令读取输入文件,并比较相邻的行.在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的.该命令加工后的结果写到输出文件中.输入文件 ...

最新文章

  1. ad19电气规则检查_建议收藏Altium Designer Rules规则详解
  2. uc的剪切板能关掉吗_罗永浩的“卖身契”有法律效力吗?
  3. C#设计模式-1、适配器模式(Adapter Pattern)(转载)
  4. pythonurllib模块-Python中的urllib模块使用详解
  5. 收藏的2个正则html标签剔除方法
  6. Docker笔记三 Docker镜像制作
  7. Spring_day3
  8. python:json文件的保存与读取
  9. 具体数学-第9课(取整进阶与数论入门)
  10. 正则表达式功能以及应用
  11. 【2019杭电多校第七场1001=HDU6646】A+B=C(思维+多细节)
  12. 自制病毒——控制桌面鼠标以及开关机
  13. 里诺仓库管理软件(单机版)3.70 注册机 Code.By.HackWm.
  14. Delphi程序实现多语言功能
  15. c语言简易仙侠文字游戏
  16. 【RPA面试题】Q2. If Activity和Flow Decision的区别是什么?
  17. CnOpenData中国上市公司投资者关系管理数据
  18. python 经纬度计算相关
  19. 转--各种文件后缀名与打开方式大全
  20. 基于单片机的汽车灯光设计

热门文章

  1. linux下恢复误删文件
  2. 重学TCP协议(6) 四次挥手
  3. 分步表单如何实现 html_HTML表单入门的分步指南
  4. 初学者设计数据库_面向初学者的完整数据库设计课程
  5. freecodecamp_freeCodeCamp.org隐私权政策:问题与解答
  6. 平安 开源 数据库 实践_刻意的实践-成为开源
  7. Oracle:时间字段模糊查询
  8. Winform控件WebBrowser与JS脚本交互
  9. python处理excel文件(xls和xlsx)
  10. 如何使用Redis做MySQL的缓存