uniq命令
作用
uniq用于删除文本中相邻的重复的行,以及统计重复行的个数
语法:
uniq [ -c | -d | -u ] [ -f Fields ] [ -s Characters ] [ -Fields ] [ +Characters ] [ InFile [ OutFile ] ]
参数
-c 显示重复行的次数
-d 仅显示重复行(只显示重复行的一次)
-D 显示重复的行(包括重复的内容)
-u 仅显示不重复的行
-f 忽略的字段数量
-i 忽略大小写
事例:
- 删除相邻的重复行(必须是相邻)
[[email protected] ~]$ cat test
aaa
aaa
bbb
bbb
ccc
ccc
aaaaa
bbbbb
aaaaa
ccccc
bbbbb
ccccc
[[email protected] ~]$ uniq test
aaa
bbb
ccc
aaaaa
bbbbb
aaaaa
ccccc
bbbbb
ccccc
- 显示重复行出现的次数 -c
[[email protected] ~]$ uniq -c test
2 aaa
2 bbb
2 ccc
1 aaaaa
1 bbbbb
1 aaaaa
1 ccccc
1 bbbbb
1 ccccc
- 仅显示重复行 -d -D
[[email protected] ~]$ uniq -d test
aaa
bbb
ccc
[[email protected] ~]$ uniq -D test
aaa
aaa
bbb
bbb
ccc
ccc
- 仅显示不重复行
[[email protected] ~]$ uniq -u test
aaaaa
bbbbb
aaaaa
ccccc
bbbbb
ccccc
- 忽略前1个字段,再比较重复
[[email protected] ~]$ cat test
aa aa
bb aa
cc aa
[[email protected] ~]$ uniq -f 1 -D test
aa aa
bb aa
cc aa
发现,忽略掉一个字符之后,后面都是aa,都重复了,所以加-D会显示出所有