红联Linux门户
Linux帮助

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

发布时间:2017-01-29 10:06:30来源:今日头条作者:Linux系统学习
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
Linux下使用uniq命令去掉文件中相邻的重复行
 
系统执行完以上命令后不会有任何信息,因此可以使用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