0%

你是唯一的 uniq

你是唯一的 uniq

.. note::
安得有车马,尚无渔与樵。
宋·王安石《游章义寺》

Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

官方定义为:

uniq - report or omit repeated lines

uniq 可检查文本文件中重复出现的行列。

语法

语法比较简单,直接用就可以。

1
$ uniq [OPTION]... [INPUT [OUTPUT]]

常用的参数为:

  • -c--count 在每列旁边显示该行重复出现的次数。

  • -d--repeated 仅显示重复出现的行列。

  • -u--unique 仅显示出一次的行列。

假定有1个文件为testfile,内容如下:

1
2
3
4
5
6
7
8
9
10
11
testfile
Hello 1
Hello 2
Hello 2
Hello 3
Hello 3
Hello 3
Hello 4
Hello 4
Hello 4
Hello 4

默认无参数

使用uniq 命令可以删除重复的行,不管有多少重复的行,仅仅显示一行。

1
2
3
4
5
$  uniq testfile
Hello 1
Hello 2
Hello 3
Hello 4

统计出现频次

如果希望统计每一行出现的频次,可以使用-c参数,其中第一行输出为出现的次数

1
2
3
4
5
$  uniq -c testfile
1 Hello 1
2 Hello 2
3 Hello 3
4 Hello 4

仅仅显示重复的行

在某些情况下,或许只想看到有重复的列,使用-d参数 :

1
2
3
4
$  uniq -d testfile
Hello 2
Hello 3
Hello 4

仅仅显示不重复的行

而某些情况下,或许只想看到不重复的列,使用-u参数:

1
2
$  uniq -u testfile
Hello 1
处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道