uniq命令大部分情况下都是要与sort命令结合使用的、即先排序、然后再uniq命令
常用的一些实例如下:
-i 选项,可以在比较时忽略大小写
-c选项,最为常用,会统计出每个重复项,重复的次数
文件样例test.txt:
001 aaa 001 http://www.cnblogs.com/5201351
1、去除重复项之后再输出:
sort 1.txt | uniq
2、仅输出含有重复项的行:
sort 1.txt | uniq -d #相当于输出重得项后,再去重输出,即输出的每个条目都是独一无二的条目,
sort 1.txt | uniq -D #输出全部的重复项,一个条目的重复项有多少个就输出多少
3、 只输出没有重复项的值(即排序后独一无二的行)
sort 1.txt | uniq -u
++++++++++++++++++++++++++++++++++++++++
uniq的高级用法:
样例文件,md5result.txt
61763cc8db82201197154feea2988086 1.txt b026324c6904b2a9cb4b88d6d61c81d1 2.txt 61763cc8db82201197154feea2988086 3.txt 61763cc8db82201197154feea2988086 4.txt
1、在比较时,只根据前面的32个字符比较,这里因为第1行和第3行的前32个字符一样,因此只会被视为重复项:
[5201351@localhost ~]$ sort md5result.txt |uniq -w 32 61763cc8db82201197154feea2988086 1.txt b026324c6904b2a9cb4b88d6d61c81d1 2.txt
2、在1的基础上,如果需要输出全部重复项(仅前32个字符),就得加上-D选项:
[5201351@localhost ~]$ sort md5result.txt |uniq -w 32 -D 61763cc8db82201197154feea2988086 1.txt 61763cc8db82201197154feea2988086 3.txt
61763cc8db82201197154feea2988086 4.txt
3、对于重复的项,除了第一个,其他的都显示出来(可以用于删除同样内容的文件案例,重复文件只保留第一个)
[5201351@localhost ~]$ sort md5result.txt |uniq -w 32 -D |awk 'a[$1]++' 61763cc8db82201197154feea2988086 3.txt 61763cc8db82201197154feea2988086 4.txt
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/13420140.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!