1、uniq:只会对相邻的行进行判断是否重复,不能全文本进行搜索是否重复,所以往往跟sort结合使用。

例子1

[root@aaa01 ~]# cat a.txt

12

34

56

12

[root@aaa01 ~]# cat a.txt|uniq >>au.txt

[root@aaa01 ~]# cat au.txt

12

34

56

12

例子2:

[root@aaa01 ~]# cat b.txt

10

46

32

10

[root@aaa01 ~]# cat b.txt|sort |uniq >>bu.txt

[root@aaa01 ~]# cat bu.txt

10

32

46

2、awk:可以全文本搜索去重然后进行显示

例子1:

如m.txt文本:

[root@aaa01 ~]# cat m.txt

12

34

56

12

[root@aaa01 ~]# awk '!x[$0]++' m.txt >ma1.txt

[root@aaa01 ~]# cat ma1.txt

12

34

56

说明:获取第一行x[12],因为这是第一行,数组m里从没见过12这个变量,那么自然他的值就是假(0)也就是说x[12]=0,这个时候!就有大作用了,他把x[12]假(0)变成了x[12]为真(!0)这个时候原本不改打印的第一行就变成了应该打印了,取逻辑反后对x[12]的值+1然后处理第二行

第二行x[34]这个情况跟刚才第一行的x[12]一样的情况,也应该打印他。

第三行x[56]和第一、二两行一样的处理逻辑。

到第四行的时候情况遍了,因为第一行已经出现过了x[12]并且已经++过了他的值已经是非0而不是前两行的0了,本应打印但这时候再由!取逻辑反就不必打印了

所以执行完就是这个结果。

例子2:

[root@aaa01 ~]# awk 'x[$0]++' m.txt >ma2.txt

[root@aaa01 ~]# cat ma2.txt

12

例子3:

[root@aaa01 ~]# vi n.txt

78

12

01

01

78

[root@aaa01 ~]# awk 'x[$0]++' n.txt >na.txt

[root@aaa01 ~]# cat na.txt

01

78

最新文章

  1. 修改git的远程仓库命令
  2. DB2表的重组
  3. 响应式布局1--媒体查询和-webkit-min-device-pixel-ratio
  4. linux dmesg命令参数及用法详解(linux显示开机信息命令)
  5. 天天模拟器 和 Genymotion 设置代理
  6. Robotium Recorder的初试
  7. 基于s5pv210嵌入式系统busybox文件系统移植
  8. kvm 性能调优
  9. <经验杂谈>查询表结构的SQL语句
  10. [移动网关]2G环境下资源下载有一定概率失败,客户端日志显示收到403错误
  11. openwrt补丁
  12. Java基础二
  13. 基于JDK1.8的LinkedList剖析
  14. appium--xpath定位元素用法
  15. 2017-12-20python全栈9期第五天第二节之可变 数据类型和不可变数据类型
  16. Atitti mybatis的单元测试attilax总结
  17. how do I get the difference between two R named lists?
  18. Linux 下 Nginx + JDK + Tomcat + MySQL 安装指南
  19. [编程题] N阶楼梯上楼问题
  20. CDOJ 1402 三角形棋盘上的博弈游戏 状压DP

热门文章

  1. web自动化测试---第一个自动化测试用例
  2. odoo开发笔记 -- 多对多字段追加数据
  3. 【Promise】Promise实现请求超时处理(加强版)
  4. Android_注解+反射代替findViewById()
  5. Effectively bypassing kptr_restrict on Android
  6. 程序员进阶之算法练习:LeetCode专场
  7. web框架的前生今世--从servlet到spring mvc到spring boot
  8. Ado.net怎么执行存储过程?
  9. Java中的集合迭代器
  10. VisualSVN 手动记录访问操作日志