uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用.
语法:
uniq [-icd]
常见参数:
-i : 忽略大小写字符的不同;
-c : 在每列旁边显示改行重复出现的次数;
-d : 仅显示重复出现的行列;
-u : 仅显示不重复出现的行列;
<1>uniq起作用的时,所有重复行必须是相邻的,不然会出现以下结果:
[root@sqj2015 ~]# last | cut -d ‘ ‘ -f 1 | uniq -c
1 root
1 reboot
1 root
1 reboot
23 root
1 reboot
1
1 wtmp
但我们先进行sort排序呢?
[root@sqj2015 ~]# last | cut -d ‘ ‘ -f 1 | sort | uniq -c
1
3 reboot
25 root
1 wtmp
这应该才是我们想要得到的结果,所以uniq一般跟sort合用才能达到理想效果.
<2>uniq -d/-u选项
uniq -d选项只会显示出重复出现的行列,如下:
[root@sqj2015 ~]# last | cut -d ‘ ‘ -f 1 | sort | uniq -cd
3 reboot
25 root
而uniq -u选项确只会显示出不重复出现的行列,如下:
[root@sqj2015 ~]# last | cut -d ‘ ‘ -f 1 | sort | uniq -cu
1
1 wtmp
为了脱出是否重复出现问题,我们加入了-c选项,来计数,是不是更清晰.