Linux下使用uniq命令去掉文件中相邻的重复行

作者: Linux系统学习 2017-01-29 10:06:30

uniq命令


功能:删除掉一个文件中的相邻重复行。


uniq命令经常使用的一些选项如下:


-c:在显示的行前冠以该行出现的次数。


-d:只显示重复行。


-i:忽略字符的大小写。


-u:只显示唯一的行,即只出现一次的行。


 


举个例子:利用uniq命令对test.sort文件的内容进行uniq操作,操作的结果与cat命令显示的结果一样,因为uniq命令只删除一个文件中的相邻重复行,虽然在test.sort文件中有相同的行但他们都是不相邻的。


goddog@localhost:~$ uniq test.sort


 


接下来,使用sort命令对test.sort文件中的内容进行排序并将结果写入test.sorted文件中。


goddog@localhost:~$ sort test.sort > test.sorted




 


系统执行完以上命令后不会有任何信息,因此可以使用cat命令列出test.sorted文件中的所有内容检验。现在可以使用uniq命令来对test.sorted文件的内容进行uniq操作了。


goddog@localhost:~$ uniq test.sorted


a


A


b


C


d


E


f


s


S


t


T


u


x


 


结果表明uniq命令已经去掉了test.sorted文件的内容中相邻的重复行。也可以使用以下命令只显示test.sorted中重复的行和重复的次数。其中-d参数表示只显示重复行。


goddog@localhost:~$ uniq -c -d test.sorted


2 A


2 S


 


还可以使用以下命令只显示test.sorted中重复的行和重复的次数的同时忽略大小写。其中-i参数表示忽略字符的大小写。


goddog@localhost:~$ uniq -cid test.sorted


3 a


3 s


2 t


 


实际上,uniq命令与sort -u命令的结果十分类似。


 


本文永久更新地址:http://www.linuxdiyf.com/linux/28017.html

相关资讯