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

注意

  1. uniq只检测邻近的行是否重复,sort -u将输入文件先排序然后再处理重复行。

  2. 该命令是GNU coreutils包中的命令,相关的帮助信息请查看man -s 1 uniqinfo coreutils 'uniq invocation'

来源:https://github.com/jaywcjlove/linux-command

最后修改于: Wednesday, January 31, 2024
欢迎关注微信公众号,留言交流。

相关文章:

翻译: