带有初学者示例的 Uniq 命令教程

如果您主要在命令行上工作并每天处理大量文本文件,您应该注意 优衣库 命令。

Uniq 命令可帮助您轻松地从文件中查找重复和重复的行。 uniq 不仅用于查找重复,还可以去除重复,显示重复行的出现次数,仅显示重复行和仅显示唯一行等。

请注意,“uniq”命令不会检测重复的行,除非它们是相邻的。 因此,您可能需要先对它们进行排序或将 sort 命令与 uniq 结合使用以获取结果。 请允许我给你看一些例子。

由于 uniq 命令是 GNU coreutils 软件包的一部分,因此它预装在大多数 Linux 发行版中。 所以,让我们不要费心安装,看看一些实用的 Uniq 命令示例。

内容

  1. uniq 命令示例
    1. 1.使用Uniq命令删除文件中连续的重复行
    2. 2.删除所有重复行
    3. 3. 只显示文件中唯一的行
    4. 4.只显示重复的行
    5. 5.显示文件中每一行的出现次数
    6. 6. 将比较限制为“N”个字符
    7. 7. 避免与前“N”个字符进行比较

uniq 命令示例

首先,让我们创建一个包含一些重复行的文件。

$ vi ostechnix.txt
welcome to ostechnix welcome to ostechnix Linus is the creator of Linux. Linux is secure by default Linus is the creator of Linux. Top 500 super computers are powered by Linux

正如您在上面的文件中看到的,我们几乎没有重复的行(第一、第二、第三和第五行是重复的)。

1.使用Uniq命令删除文件中连续的重复行

如果您使用不带任何参数的 ‘uniq’ 命令,它将删除所有连续的重复行并仅显示唯一行。

$ uniq ostechnix.txt

样本输出:

使用 Uniq 命令删除文件中的连续重复行

如您所见,uniq 命令删除了给定文件中所有连续的重复行。 您可能还注意到,上面的输出在第二行和第四行仍然有重复项。 这是因为 uniq 命令只会省略相邻的重复行。 当然,我们也可以删除那些不连续的重复项。 看下面的第二个例子。

2.删除所有重复行

$ sort ostechnix.txt | uniq

样本输出:

删除所有重复行

看? 没有重复或重复的行。 换句话说,上面的命令将从文件中显示每一行 ostechnix.txt.

在上面的示例中,我们将 sort 命令与 uniq 结合使用,因为正如我已经提到的,除非它们相邻,否则 uniq 不会找到重复/重复的行。

3. 只显示文件中唯一的行

要仅显示文件中的唯一行,命令将是:

$ sort ostechnix.txt | uniq -u

样本输出:

Linux is secure by default Top 500 super computers are powered by Linux

如您所见,我们在给定文件中只有两个独特的行。

4.只显示重复的行

同样,我们也可以显示文件中的重复行,如下所示。

$ sort ostechnix.txt | uniq -d

样本输出:

Linus is the creator of Linux. welcome to ostechnix

这两个是 ostechnix.txt 文件中重复/重复的行。 请注意 -d (小写 d)将 只打印重复的行, 每组一个. 打印 所有重复的行, 利用 -D (大写 d)如下所示。

$ sort ostechnix.txt | uniq -D

在下面的屏幕截图中查看两个标志之间的区别。

使用 uniq 命令仅显示重复的行仅显示重复行

5.显示文件中每一行的出现次数

出于某种原因,您可能想要检查在给定文件中某行重复了多少次。 为此,请使用 -c 像下面这样的标志。

$ sort ostechnix.txt | uniq -c

样本输出:

 2 Linus is the creator of Linux.  1 Linux is secure by default  1 Top 500 super computers are powered by Linux  2 welcome to ostechnix

我们还可以显示每行的出现次数以及该行,按最常用的命令排序:

$ sort ostechnix.txt | uniq -c | sort -nr

样本输出:

 2 welcome to ostechnix  2 Linus is the creator of Linux.  1 Top 500 super computers are powered by Linux  1 Linux is secure by default

6. 将比较限制为“N”个字符

Uniq 命令允许我们将比较限制为文件中特定数量的行字符,使用 -w 旗帜。 例如,让我们将比较限制为文件中行的前 4 个字符,并显示重复的行,如下所示。

$ uniq -d -w 4 ostechnix.txt

7. 避免与前“N”个字符进行比较

就像限制比较文件中的 N 个字符行一样,我们也可以避免比较前 N 个字符使用 -s 旗帜。

以下命令将避免与文件中行的前 4 个字符进行比较:

$ uniq -d -s 4 ostechnix.txt

为避免比较前 N 个字段而不是字符,请在上述命令中使用“-f”标志。

有关详细信息,请参阅帮助部分;

$ uniq --help

和手册页。

$ man uniq

  • 带有初学者示例的折叠命令教程

CLI命令行LinuxLinux 命令Linux howtoUniq 命令Unix