uniq
显示或忽略重复的行。
概要
1uniq [OPTION]... [INPUT [OUTPUT]]
主要用途
- 将输入文件(或标准输入)中邻近的重复行写入到输出文件(或标准输出)中。
- 当没有选项时,邻近的重复行将合并为一个。
选项
1-c, --count 在每行开头增加重复次数。
2-d, --repeated 所有邻近的重复行只被打印一次。
3-D 所有邻近的重复行将全部打印。
4--all-repeated[=METHOD] 类似于 -D,但允许每组之间以空行分割。METHOD取值范围{none(默认),prepend,separate}。
5-f, --skip-fields=N 跳过对前N个列的比较。
6--group[=METHOD] 显示所有行,允许每组之间以空行分割。METHOD取值范围:{separate(默认),prepend,append,both}。
7-i, --ignore-case 忽略大小写的差异。
8-s, --skip-chars=N 跳过对前N个字符的比较。
9-u, --unique 只打印非邻近的重复行。
10-z, --zero-terminated 设置行终止符为NUL(空),而不是换行符。
11-w, --check-chars=N 只对每行前N个字符进行比较。
12--help 显示帮助信息并退出。
13--version 显示版本信息并退出。
参数
INPUT(可选):输入文件,不提供时为标准输入。
OUTPUT(可选):输出文件,不提供时为标准输出。
返回值
返回0表示成功,返回非0值表示失败。
例子
注意:命令2和命令3结果一样,命令1仅作了相邻行的去重。
1uniq file.txt
2sort file.txt | uniq
3sort -u file.txt
只显示单一行,区别在于是否执行排序:
1uniq -u file.txt
2sort file.txt | uniq -u
统计各行在文件中出现的次数:
1sort file.txt | uniq -c
在文件中找出重复的行:
1sort file.txt | uniq -d
注意
-
uniq
只检测邻近的行是否重复,sort -u
将输入文件先排序然后再处理重复行。 -
该命令是
GNU coreutils
包中的命令,相关的帮助信息请查看man -s 1 uniq
,info coreutils 'uniq invocation'
。
来源:https://github.com/jaywcjlove/linux-command
最后修改于: Wednesday, January 31, 2024
版权申明:
- 未标注来源的内容全部为原创,未经授权请勿转载(因转载后排版往往错乱、内容不可控、无法持续更新等);
- 非营利为目的,演绎本博客任何内容,请以'原文出处'或者'参考链接'等方式给出本站相关网页地址(方便读者)。