shell的uniq命令

news/2024/11/28 18:46:42/

uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

uniq 可检查文本文件中重复出现的行列。

命令语法:

uniq [-c/d/D/u/i] [-f Fields] [-s N] [-w N] [InFile] [OutFile]

参数解释:

-c: 在每列旁边显示该行重复出现的次数。-d: 仅显示重复出现的行列,显示一行。-D: 显示所有重复出现的行列,有几行显示几行。-u: 仅显示出一次的行列-i: 忽略大小写字符的不同-f Fields: 忽略比较指定的列数。-s N: 忽略比较前面的N个字符。
-w N: 对每行第N个字符以后的内容不作比较。[InFile]: 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;[OutFile]: 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。

栗子

# uniq.txtMy name is Delav
My name is Delav
My name is Delav
I'm learning Java
I'm learning Java
I'm learning Java
who am i
Who am i
Python is so simple
My name is Delav
That's good
That's good
And studying Golang

1. 直接去重

uniq uniq.txt 

结果为:

My name is Delav
I'm learning Java
who am i 
Who am i 
Python is so simple
My name is Delav
That's good 
And studying Golang

2. 显示重复出现的次数

uniq -c uniq.txt 

结果为:

      3 My name is Delav3 I'm learning Java1 who am i 1 Who am i 1 Python is so simple1 My name is Delav2 That's good 1 And studying Golang

你会发现,上面有两行 ”My name is Delav ” 是相同的。也就是说,当重复的行不相邻时,uniq 命令是不起作用的。所以,经常需要跟 sort 命令一起使用。

sort uniq.txt | uniq -c

结果为:

      1 And studying Golang3 I'm learning Java4 My name is Delav1 Python is so simple2 That's good 1 who am i 1 Who am i 

3. 只显示重复的行,并显示重复次数

uniq -cd uniq.txt

结果为:

      3 My name is Delav3 I'm learning Java2 That's good 

显示所有重复的行,不能与 -c 一起使用

uniq -D uniq.txt 

结果为:

My name is Delav
My name is Delav
My name is Delav
I'm learning Java
I'm learning Java
I'm learning Java
That's good 
That's good 

4. 忽略第几列字符

下面这里 -f 1 忽略了第一列字符,所以"who am i" 和 "Who am i" 判定为重复

uniq -c -f 1 uniq.txt

结果为:

      3 My name is Delav3 I'm learning Java2 who am i 1 Python is so simple1 My name is Delav2 That's good 1 And studying Golang

5. 忽略大小写

下面这里 -i 忽略了大小写,所以"who am i" 和 "Who am i" 判定为重复

uniq -c -i uniq.txt 

结果为:

      3 My name is Delav3 I'm learning Java2 who am i 1 Python is so simple1 My name is Delav2 That's good 1 And studying Golang

6. 忽略前面N个字符

下面这里 -s 4 表示忽略前面四个字符,所以"who am i" 和 "Who am i" 判定为重复

uniq -c -s 4 uniq.txt

结果为:

      3 My name is Delav3 I'm learning Java2 who am i 1 Python is so simple1 My name is Delav2 That's good 1 And studying Golang

7. 忽略第N个字符后的内容

uniq -c -w 2 uniq.txt 

http://www.ppmy.cn/news/274405.html

相关文章

腾讯云服务器SA3实例AMD处理器CPU网络带宽性能详解

腾讯云AMD服务器SA3实例CPU采用2.55GHz主频的AMD EPYCTM Milan处理器,睿频3.5GHz,搭载最新一代八通道DDR4,内存计算性能稳定,默认网络优化,最高内网收发能力达1900万pps,最高内网带宽可支持100Gbps。腾讯云…

深度学习应用篇-计算机视觉-目标检测[4]:综述、边界框bounding box、锚框(Anchor box)、交并比、非极大值抑制NMS、SoftNMS

【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化…

知识变现海哥:知识博主私域卖课三大途径

哈喽,大家好,我是海哥,知识付费变现创业教练,教育公司培训总监,从事知识付费变现咨询10年,已助力3000人实现知识付费变现。 私域这里主要指的就是微信,这里跟大家介绍三种私域卖课的方式。 1 朋…

《低代码指南》——维格云销售数据上报与分析

目录 1. 简介 1.1 案例简介 1.2 设计思路 2. 设计步骤 2.1 通过表单收集数据 2.2 通过权限管理数据 2.3 通过仪表盘分析数据 2.4 发布与数据查看权限控制 3. 导入Excel 1. 简介 本文将通过销售数据上报与分析案例,来详细说明LCHub是如何收集和分析数据的。 1.1 案例…

宫崎骏的幻想世界6页 动漫主题 我愿称之为最美的网页设计作业

宫崎骏的幻想世界6页 动漫主题 我愿称之为最美的网页设计作业 学生网页设计期末作业首先是选题要正确,界面做的好看一些,然后每个页面的布局和排版尽量不要去重复,再把前端的一些标签知识点都运用上,比如说音乐视频,表…

计算机技术幻想作文600,信息技术考试作文600字

期中考试前期,我们又迎来了另一个考试——信息技术考试。而且是笔试。 在电脑上的操作题我基本都会做,也都能做对,但笔试的话有很多是我连读都读不懂的,至于答对,更是……哎!能答对几题是几题吧&#xff01…

蒂法html5游戏,《最终幻想7:重制版》大量新截图:蒂法招式/支线任务

史克威尔日前为《最终幻想7:重制版》公布了大量的新截图和艺设图,以及新情报。 请输入图片描述 首先是两名熟悉的角色赤红十三和宝条博士。之后还有一些预购特典召唤兽,陆行鸟、宝石兽、仙人掌等等。之后是蒂法的招式展示。另外还有materia效…

放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较

author:张俊林 /*可以转载,转载请标明作者及知乎的出处*/ 如果看不清图片,请转到:放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较 在辞旧迎新的时刻,大…