uniq命令可以去掉相邻的重复的行,或者统计重复的次数。如果两行内容虽然相同,但是并不相邻,是不能用uniq命令去掉重复的一行的。
去掉相邻的重复的行
uniq [option] [file]
-c 统计重复的次数 -d 只输出重复的行 -u 只输出不重复的行 -i 比较时忽略大小写 -f N 比较时忽略前N个字段 -s N 比较时忽略前N个字符 -w N 比较时只比较前N个字符
下面我们用一个虚拟的文件来演示uniq命令的用法,该文件里有2行内容都是b且相邻,另外有两行内容都是a但不相邻。
[peter@ibi98 uniq]$ cat demo_uniq a b b a c d [peter@ibi98 uniq]$ uniq demo_uniq a b a c d [peter@ibi98 uniq]$ sort demo_uniq |uniq a b c d [peter@ibi98 uniq]$ sort demo_uniq |uniq -c 2 a 2 b 1 c 1 d
从上面可以看出,uniq只能去掉相邻的重复的行,因此该命令经常用在sort命令后面,文本经sort排序后内容相同的行就会排在一起,再用uniq处理就会去掉所有重复的行。
如果使用了-c选项,则输出的是重复的次数。