uniq命令用于移除或发现文件中重复的条目。
现在有一个文件,其内容如下所示:
$ cat example.txt
aaa
aaa
bbb
bbb
bbb
ccc
使用uniq命令,不带有任何选项时,它将移除文件中重复的行并显示单一行:
$ uniq example.txt
aaa
bbb
ccc
使用-c选项,可以统计重复行出现的次数:
$ uniq -c example.txt
2 aaa
3 bbb
1 ccc
使用-d选项,只显示文件中有重复的行并只显示一次:
$ uniq -d example.txt
aaa
bbb
使用-D选项,与-d选项类似linux命令,但它显示文件中所有重复的行:
$%20uniq%20-D%20example.txt
aaa
aaa
bbb
bbb
bbb
使用-u选项,只显示文件中不重复的行:
$%20uniq%20-u%20example.txt
ccc
现在我们将示例文件修改成如下内容:
$%20cat%20example.txt
aaa%20bbb
aaa ccc
bbb aaa
bbb ccc
ccc ccc
使用-w选项,可以限制uniq命令只比较每行的前N个字符。
例如,下面的实例中linux命令,限制uniq命令只比较每行的前3个字符是否重复:
$ uniq -w 3 example.txt
aaa bbb
bbb aaa
ccc ccc
使用-s选项,可以避免uniq命令比较每行的前N个字符,即跳过每行的前N个字符,只比较后面的字符。例如,下面的实例中,
避免uniq命令比较每行的前3个字符,只比较后面的字符是否重复:
$ uniq -s 3 example.txt
aaa bbb
aaa ccc
bbb aaa
bbb ccc
使用-f选项,可以避免uniq命令比较前N列,即跳过前N列(这里列以空格分隔),只比较后面的字符。例如,下面的实例中,
避免uniq命令比较第一列的内容,只比较后面的字符是否重复:
$ uniq -f 1 example.txt
aaa bbb
aaa ccc
bbb aaa
bbb ccc