linux的uniq命令用于过滤重复的行,重复的行将会被舍去,也可以统计行的重复次数,命令语法如下。
Usage: uniq [OPTION]... [INPUT [OUTPUT]]
uniq命令安行读取标准输入或文件,该命令首先比较相邻的行,然后出去第二行和该行的后续副本。
因此,在使用uniq之前,必须先使用sort命令使重复的行相邻。最后,uniq命令将写入标准输出或文件。
缺省情况下,uniq命令会比较所有行,如果执行成功,uniq返回值为0,否则,大于0(错误输出)
列举几个常用的参数:
-c 在输出行前面加上每行在输入文件中出现的次数。
-d 仅显示重复行。
-D 显示所有重复的行。
-f --skip-fields=N 忽略由 Fields 变量指定的字段数目。如果 Fields 变量的值超过输入行中的字段数目, uniq 命令用空字符串进行比较。
-i, --ignore-case 忽略大小写比较
-s, --skip-chars=N 忽略每行的前几个字母
-u, --unique 仅显示重复的行
-z, --zero-terminated 使用\0作为结尾,而不是换行符
-w, --check-chars=N 对比每行的前几个字符
以下简单介绍一下几个用法:
1)显示重复的行数量
[$~]# cat uniq.txt uniq.txt | sort | uniq -c
2 apple
2 banana
2 cat
2 dog
2 orange
2 water
2)忽略大小写比较
[$ ~]# cat uniq.txt uniq2.txt | sort | uniq -ci
2 apple
2 banana
2 cat
2 dog
2 orange
2 water mem