如何使用Linux命令行删除文本文件中的重复行

示例文本:

$cat distros.txt
Ubuntu
CentOS
Debian
Ubuntu
Fedora
Debian
openSUSE
openSUSE
Debian

“uniq”命令能够从我们的文件中获取所有唯一的行,但这仅在重复行彼此相邻时才有效。
为了使这些行相邻,首先需要将它们按字母顺序排序。下面的命令将通过使用'sort'和'uniq'工作。

$sort distros.txt | uniq
CentOS
Debian
Fedora
openSUSE
Ubuntu

我们还可以使用“-u”以排序方式获得相同的精确结果,不需要uniq命令。

$sort -u distros.txt
CentOS
Debian
Fedora
openSUSE
Ubuntu

要统计重复行的数量,可以使用UNIQ使用“-C”(Count)选项。

$sort distros.txt | uniq -c
      1 CentOS
      3 Debian
      1 Fedora
      2 openSUSE
      2 Ubuntu

对统计数量进行排序:

$sort distros.txt | uniq -c | sort -nr
      3 Debian
      2 Ubuntu
      2 openSUSE
      1 Fedora
      1 CentOS
日期:2020-07-07 20:54:30 来源:oir作者:oir