📜  LINUX 中的 uniq 命令示例(1)

📅  最后修改于: 2023-12-03 15:02:43.793000             🧑  作者: Mango

Linux 中的 uniq 命令

在 Linux 操作系统中,uniq 命令可以用于从文本文件或标准输入流中查找并删除重复的行。该命令还支持许多选项,例如只显示重复的行、显示重复的行及其计数等。

基本语法

uniq 命令的基本语法如下所示:

uniq [options] [input_file [output_file]]

其中,

  • options:可选项,以破折号“-”开头,用于指定 uniq 命令的具体功能;
  • input_file:可选项,表示输入文件的路径。如果没有指定该参数,则从标准输入流(例如键盘输入)中读取;
  • output_file:可选项,表示输出结果的路径。如果没有指定该参数,则将结果输出到标准输出流(例如终端窗口)中。
常用选项

以下是 uniq 命令中常用的选项:

  • -c:同时显示每行重复出现的次数;
  • -d:仅显示重复的行;
  • -i:忽略大小写;
  • -u:仅显示不重复的行。

例如,要求输出文件 input.txt 中不重复的行(忽略大小写),可以执行以下命令:

uniq -i input.txt
实例演示

假设有一个文件 example.txt,其中包含如下内容:

apple
banana
apple
cherry
banana
apple

使用 uniq 命令可以将所有重复的行删除。执行以下命令可以输出不重复的行:

uniq example.txt

输出结果如下所示:

apple
banana
apple
cherry
banana
apple

可以看到,所有的行都没有被删除,这是因为 uniq 命令默认根据每一行的内容进行比较,因此相邻的重复行不会被删除。

如果要求删除所有连续的重复行,可以使用 -d 选项。执行以下命令:

uniq -d example.txt

输出结果如下所示:

apple
banana

可以看到,只有重复的行被保留了下来。

如果要统计每行出现的次数,可以使用 -c 选项。执行以下命令:

uniq -c example.txt

输出结果如下所示:

      1 apple
      2 banana
      1 apple
      1 cherry
      1 banana
      1 apple

可以看到,在每行的前面添加了这一行在文本中出现的次数。

如果要将结果输出到一个新的文件中,可以使用输出重定向符 >。例如,执行以下命令可以将所有不重复的行写入到文件 output.txt 中:

uniq example.txt > output.txt
总结

uniq 命令可以帮助我们查找并删除重复的行,还支持许多选项,例如只显示重复的行、显示重复的行及其计数等。在日常的 Linux 系统操作中,这个命令是非常有用的。