linux之uniq命令

1 uniq命令参数

uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用,可检查文本文件中重复出现的行列

uniq 参数(可以忽略) file

参数如下

-c或--count 在每列旁边显示该行重复出现的次数。
-d或--repeated 仅显示重复出现的行列。
-f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
-s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
-u或--unique 仅显示出一次的行列。
-w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
--help 显示帮助。
--version 显示版本信息。
[输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
[输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。

2 基本使用

1)不加参数的情况下uniq file,当重复的行并相邻时,我们可以去重,当重复的行并不相邻时,我们不可以去重。

cat c.txt
123
123
234
234
456
456
uniq c.txt
123
234
456

下面的不生效 

cat d.txt
123
234
345
123
234
345
uniq d.txt
123
234
345
123
234
345

如果我们配合sort命令就可以去重

sort d.txt | uniq
123
234
345

2)使用-c 首显示该行重复出现的次数

sort d.txt | uniq -c
      2 123
      2 234
      2 345
uniq -c c.txt
      2 123
      2 234
      2 456

如果我们uniq加上-u和-d参数会是什么效果呢?这里的重复的行数是不连续的,比如数据123和123。

cat b.txt
123
234
345
345
123
sort b.txt | uniq -d
123
345

我们可以知道sort命令配合uniq -d命令 我们可以找到这个文件里面的重复数据。

sort b.txt | uniq -u
234

我们可以知道sort命令配合uniq -u命令 我们去掉这个文件里面的所有重复数据,不保留重复数据。

sort b.txt | uniq
123
234
345

我们可以知道sort命令配合uniq 不加参数命令,我们去掉这个文件里面的重复数据,指保留重复数据的一份。

3 总结

1) 为什么一般uniq命令需要和sort命令联合使用,因为uniq去重复只针对重复的行并相邻时,我们可以去重,但是我么用了sort排序后那么也能达到相同的数据是相邻的

2)我们可以知道sort命令配合uniq -d命令 我们可以找到这个文件里面的重复数据。

3)我们可以知道sort命令配合uniq -u命令 我们去掉这个文件里面的所有重复数据,不保留重复数据。

4)我们可以知道sort命令配合uniq 不加参数命令,我们去掉这个文件里面的重复数据,指保留重复数据的一份。

5)看到排序和去重复或者找重复数据,我们需要想到sort命令和uniq命令。

发布了1043 篇原创文章 · 获赞 630 · 访问量 286万+

猜你喜欢

转载自blog.csdn.net/u011068702/article/details/102982601