Linux uniq 命令

2025年3月17日 | 阅读 3 分钟

Linux uniq 命令用于从文件中删除所有重复的行。此外,它还可以用于显示单词计数、仅显示重复的行、忽略字符以及比较特定字段。它是 Linux 系统中最常用的命令之一。由于它比较相邻的字符,因此经常与 sort 命令一起使用。它会丢弃所有相同的行并输出结果。

语法

选项

uniq 命令的一些有用命令行选项如下:

-c, --count: 在每行前面加上出现次数。

-d, --repeated: 用于打印重复的行,每组一行。

-D: 用于打印所有重复的行。

--all-repeated[=METHOD]: 与 '-D' 选项非常相似,两者之间的区别在于它允许在组之间用空行分隔。

-f, --skip-fields=N: 用于避免比较前 N 个字段。

--group[=METHOD]: 用于显示所有项目并将组用空行分隔。

-i, --ignore-case: 在比较时忽略大小写差异。

-s, --skip-chars=N: 用于避免比较前 N 个字符。

-u, --unique: 用于打印唯一的行。

-z, --zero-terminated: 用于行分隔符为 NUL 而不是换行符模式。

-w, --check-chars=N: 用于比较行中不超过 N 个字符。

--help: 用于显示帮助文档。

--version:用于显示版本信息。

uniq 命令示例

让我们看一些 uniq 命令的示例

删除重复行

要从文件中删除重复行,请按以下方式执行 basic uniq 命令:

上述命令将从文件 'dupli.txt' 中删除重复行。请看下面的输出:

Linux Uniq Filters

从上面的输出中,重复的单词被忽略了。

计算单词出现的次数

我们可以使用 uniq 命令计算单词出现的次数。'-c' 选项用于计数。按以下方式执行:

上述命令将计算 'dupli.txt' 中的单词。请看下面的输出:

Linux Uniq Filters

从上面的输出中,命令 "sort dupli.txt | uniq -c" 计算了单词重复的次数。

显示重复的行

'-d' 选项用于仅显示重复的行。它只会显示文件中出现一次以上的行,并将输出写入标准输出。请看下面的命令:

上述命令将仅显示重复的行。请看下面的输出:

Linux Uniq Filters

显示唯一的行

'-u' 选项用于仅显示唯一的行(不重复的行)。它只会显示出现一次的行,并将结果写入标准输出。请看下面的命令:

上述命令将仅显示文件 'dupli.txt' 中的唯一行。请看下面的输出:

Linux Uniq Filters

比较时忽略字符

'-s' 选项用于在比较时忽略字符。它将忽略指定的字符数并将结果显示到标准输出。请看下面的命令:

上述命令将在文件 'dupli.txt' 的比较中忽略前两个字符。请看下面的输出:

Linux Uniq Filters

比较时忽略字段

'-f' 选项用于忽略字段。请看下面的命令:

上述命令将不会比较文件 'dupli2.txt' 的前两个字段。请看下面的输出:

Linux Uniq Filters

从上面的输出中,忽略了前两个字段,并且将比较文件 'dupli2.txt' 的所有其余字段。


下一个主题Linux wc