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

linux上文件内容去重的问题uniq/awk 正则表达过滤操作的更多相关文章

  1. linux上文件内容去重的问题uniq/awk

    1.uniq:只会对相邻的行进行判断是否重复,不能全文本进行搜索是否重复,所以往往跟sort结合使用. 例子1: [root@aaa01 ~]# cat a.txt 12 34 56 12 [root ...

  2. linux清空文件内容的几种方式与区别

    虽然linux清空文件内容的方式有很多种,但是他们之间有着细微的差别.通过实践我将他们分为两类: 将文件清空,文件大小为0k $ : > filename  $ > filename  $ ...

  3. [转] Linux 查找文件内容

    Linux查找文件内容的常用命令方法. 从文件内容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件g ...

  4. linux上文件的上传和下载

    现整理一篇linux上文件的上传和下载 第一种方式就是在windos上安装工具 如: 工具如何使用我就不赘述了,easy 第二种方式就是使用liux的命令(首先是文件上传) 上传文件(首先创建文件夹如 ...

  5. Linux 查询文件内容重复数 uniq、sort命令

    前提:uniq只能查询数据相邻的重复次数,而sort可以查询乱序的重复次数. 原谅我,以下内容都是复制菜鸟驿站的!!! Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sor ...

  6. linux shell文件合并 去重 分割

    1,合并+去重+分割 转载:shell 文件合并,去重,分割 - kakaisgood - 博客园 (cnblogs.com) 第一:两个文件的交集,并集前提条件:每个文件中不得有重复行1. 取出两个 ...

  7. Linux 查看文件内容的命令

    转载自:新浪博客 (观看档案内容 : cat, tac, more, less, head, tail, nl, 刚刚我们提到的都只是在于显示档案的外观,或者是移动与复制一个档案或目录而已,那么如果我 ...

  8. linux实现文件的去重【转】

    (1)两个文件的交集,并集 1. 取出两个文件的并集(重复的行只保留一份) cat file1 file2 | sort | uniq > file3 2. 取出两个文件的交集(只留下同时存在于 ...

  9. 第3章 Linux上文件的权限管理

    3.1 文件/目录的权限 3.1.1 文件的权限 每个文件都有其所有者(u:user).所属组(g:group)和其他人(o:other)对它的操作权限,a:all则同时代表这3者.权限包括读(r:r ...

随机推荐

  1. STL sort源码剖析

    转载自:http://www.cnblogs.com/imAkaka/articles/2407877.html STL的sort()算法,数据量大时采用Quick Sort,分段递归排序,一旦分段后 ...

  2. Vue2 实现时空穿梭框功能模块

    前言 这篇文章主要是分享一个时空穿梭框功能,也就是我们平时用的选择功能.勾选了的项就会进入到另一个框中. 时空穿梭框之旅 示例演示: 这个时空穿梭框实现了: 1.可以全选.反选 2.没有选中时,不可以 ...

  3. python 常用技巧 — 列表(list)

    目录: 1. 嵌套列表对应位置元素相加 (add the corresponding elements of nested list) 2. 多个列表对应位置相加(add the correspond ...

  4. java基础学习笔记一

    一.JAVA访问控制修饰符 用于控制类中成员的可见性 1.public(公有):在任何地方可以访问 2.protected(受保护的):子夫类(即使字父类不在同一包)和本包中可以访问 3.defaul ...

  5. Delphi ini文件结构简介

    一.INI文件的结构:; 注释[小节名]关键字=值 INI文件允许有多个小节,每个小节又允许有多个关键字, “=”后面是该关键字的值. 值的类型有三种:字符串.整型数值和布尔值.其中字符串存贮在INI ...

  6. SparkStreaming获取kafka数据的两种方式:Receiver与Direct

    简介: Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式,可以简单理解成: Receiver方式是通过zookeeper来连接kafka队列, Dire ...

  7. linux shell的单行多行注释

    1.单行注释,使用符号# echo " echo "test" #echo "comment“ 2. 多行注释 (1)使用 :<<!  ! file ...

  8. [CSP-S模拟测试52]题解

    A.平均数 看到第K小,又确定跟平衡树/主席树没有关系,可以把问题转化为有K-1个答案比它小再考虑二分. 二分平均值x,之后将原序列统一减去x.这时序列中区间和<0的区间个数就是原序列中平均值小 ...

  9. iOS 109个Demo范例

    https://github.com/subdigital/nsscreencast 版权声明:本文为博主原创文章,未经博主允许不得转载.

  10. mysql全家桶(二)数据操作

    一.数据操作1.增#新增insert into 表名(字段列表) values(值列表);INSERT INTO table_name ( field1, field2,...fieldN ) VAL ...