如果你主要从事命令行工作,每天处理大量的文本文件,那么你应该了解uniq命令。此命令将帮助您轻松地从文件中找到重复的行。它不仅用于查找重复项,我们还可以使用它来删除重复项、显示重复项的出现次数、仅显示重复行、仅显示***行等。由于uniq命令是GNU的一部分coreutils包,它预装在大多数Linux发行版中,因此我们无需费心安装它。让我们看一些实际的例子。请注意,uniq不会删除重复的行,除非它们是相邻的。因此,您可能需要先对它们进行排序,或者将sort命令与uniq结合使用以获得结果。让我给你举几个例子。首先,让我们创建一个包含一些重复行的文件:viostechnix.txt欢迎来到ostechnix欢迎来到ostechnixLinus是Linux的创造者。默认情况下Linux是安全的Linus是Linux的创造者。500强超级计算机都由Linux提供支持,就像你在As你可以在上面的文件中看到,我们有一些重复的行(***和第二、第三和第五是重复的)。1、使用uniq命令删除文件中连续的重复行。如果使用不带任何参数的uniq命令,它将删除所有连续的重复行,只显示***行。uniqostechnix.txt示例输出:如您所见,uniq命令删除给定文件中所有连续的重复行。您可能还会注意到上面的输出仍然重复了第二行和第四行。这是因为uniq命令只会删除相邻的重复行。当然,我们也可以删除不连续的重复行。请参见下面的第二个示例。2.删除所有重复行sortostechnix.txt|uniq示例输出:看到了吗?没有重复的行。换句话说,上面的命令将显示在ostechnix.txt中只出现一次的行。我们将sort命令与uniq命令结合使用,因为正如我提到的,uniq不会删除重复的行,除非它们相邻。3.只显示文件中的***行为了只显示文件中的***行,你可以这样做:sortostechnix.txt|uniq-u示例输出:默认情况下Linux是安全的500强超级计算机由Linux提供支持如您所见,给定文件中只有两行是唯一的。4.只显示重复行同样,我们也可以显示一个文件中的重复行,如下:sortostechnix.txt|uniq-d示例输出:LinusisthecreatorofLinux.welcometoostechnix这两行在ostechnix.txt文件中是重复的行。请注意-d(小写d)将只打印重复行,每组一行。要打印所有重复行,请使用-D(大写D),如下所示:sortostechnix.txt|uniq-D看下面截图中两个选项的区别:5.显示文件中每一行由于某个原因出现的次数,为此你可能要查看每一行在中重复出现的次数一个给定的文件。为此,请按如下方式使用-c选项:sortostechnix.txt|uniq-c示例输出:2Linus是Linux的创造者。1Linux默认是安全的1Top500超级计算机由Linux驱动2欢迎来到ostechnix我们也可以按照每行出现的次数排序,然后显示,如下图:sortostechnix.txt|uniq-c|sort-nr示例输出:2欢迎来到ostechnix2Linus是Linux的创造者。1500强超级计算机由Linux提供支持1Linux默认是安全的6.将比较限制为N个字符我们可以使用-w选项将比较限制为文件中的特定字符数。例如,我们比较一个文件的前四个字符,并显示重复行,如下:uniq-d-w4ostechnix.txt7.忽略指定比较的N个字符Like限制文件中行的前N个字符As通过比较,我们还可以使用-s选项忽略比较的前N个字符。下面的命令会忽略文件中每一行的前四个字符进行比较:uniq-d-s4ostechnix.txt要忽略比较前N个字段(LCTT译注:前几列)而不是字符,在上面在命令中使用-f选项。更详细的可以参考帮助部分:uniq--help也可以使用man命令查看:manuniq今天来了!我希望您现在对uniq命令及其用途有了基本的了解。如果您觉得我们的指南有用,请在您的社交网络上分享并继续支持我们。更多好物来袭,敬请持续关注!
