Linux uniq 命令实用示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,你将学习如何在 Linux 中使用 uniq 命令从文件中删除重复行并统计唯一行的出现次数。uniq 命令是一个强大的文本处理和编辑工具,能够帮助你高效地清理和分析文本数据。你将首先了解 uniq 命令的用途和语法,然后将其应用于实际示例,例如删除重复行和统计唯一行。通过本实验,你将掌握在 Linux 环境中使用 uniq 命令有效管理和操作文本数据的技能。

本实验涵盖以下步骤:

  • 了解 uniq 命令的用途和语法
  • 从文件中删除重复行
  • 统计唯一行的出现次数

Linux 命令速查表



Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/sort("Text Sorting") linux/TextProcessingGroup -.-> linux/uniq("Duplicate Filtering") subgraph Lab Skills linux/echo -.-> lab-422976{{"Linux uniq 命令实用示例"}} linux/cat -.-> lab-422976{{"Linux uniq 命令实用示例"}} linux/sort -.-> lab-422976{{"Linux uniq 命令实用示例"}} linux/uniq -.-> lab-422976{{"Linux uniq 命令实用示例"}} end

了解 uniq 命令的用途和语法

在这一步中,你将学习 Linux 中 uniq 命令的用途和语法。uniq 命令用于从文件或输入流中删除重复行。

uniq 命令的基本语法如下:

uniq [OPTION]... [INPUT_FILE [OUTPUT_FILE]]

以下是选项的详细说明:

  • -c:在每行前显示出现次数
  • -d:仅打印重复行
  • -u:仅打印唯一行
  • -i:比较行时忽略大小写
  • -f N:忽略每行的前 N 个字段
  • -s N:忽略每行的前 N 个字符

让我们首先创建一个包含一些重复行的示例文件:

echo -e "apple\norange\napple\nbanana\norange" > sample.txt

示例输出:

apple
orange
apple
banana
orange

现在,我们使用 uniq 命令删除重复行:

uniq sample.txt

示例输出:

apple
orange
banana

在这个示例中,uniq 命令从输入文件中删除了重复行 "apple" 和 "orange"。

从文件中删除重复行

在这一步中,你将学习如何使用 uniq 命令从文件中删除重复行。

首先,我们创建一个包含一些重复行的示例文件:

echo -e "apple\norange\napple\nbanana\norange\napple" > sample.txt

示例输出:

apple
orange
apple
banana
orange
apple

要删除重复行,我们可以使用 uniq 命令:

uniq sample.txt

示例输出:

apple
orange
banana

uniq 命令会比较相邻的行并删除重复项。然而,它只会删除连续的重复行。如果重复行不相邻,uniq 将无法删除它们。

要删除所有重复行(无论它们的位置如何),我们可以结合使用 sort 命令和 uniq 命令:

sort sample.txt | uniq

示例输出:

apple
banana
orange

sort 命令会将行按字母顺序排列,从而确保重复行相邻。然后,uniq 命令可以删除这些重复项。

统计唯一行的出现次数

在这一步中,你将学习如何使用 uniq 命令统计文件中唯一行的出现次数。

首先,我们创建一个包含一些重复行的示例文件:

echo -e "apple\norange\napple\nbanana\norange\napple" > sample.txt

示例输出:

apple
orange
apple
banana
orange
apple

要统计唯一行的出现次数,我们可以使用 uniq 命令的 -c 选项:

uniq -c sample.txt

示例输出:

   3 apple
   1 banana
   2 orange

在此输出中,每行前面的数字表示该唯一行的出现次数。

如果你想按出现次数对输出进行排序,可以将输出通过管道传递给 sort 命令:

uniq -c sample.txt | sort -n

示例输出:

   1 banana
   2 orange
   3 apple

sort 命令的 -n 选项会按数字顺序对输出进行排序,从而将出现次数最少的行排在前面。

总结

在本实验中,你学习了 Linux 中 uniq 命令的用途和语法,该命令用于从文件或输入流中删除重复行。你探索了 uniq 命令提供的各种选项,例如统计唯一行的出现次数、仅打印重复行以及在比较行时忽略大小写。然后,你将 uniq 命令应用于从示例文件中删除重复行,并了解到它只会删除连续的重复行。为了删除所有重复行,你将 sort 命令与 uniq 结合使用,以确保在删除重复项之前将行按字母顺序排列。

Linux 命令速查表