Shell 脚本中 uniq 命令的作用是什么?

推荐答案

uniq 命令用于从输入中删除连续的重复行。它通常与 sort 命令结合使用,以确保所有重复行都是连续的,从而能够被 uniq 命令正确识别和删除。

本题详细解读

1. 基本用法

uniq 命令的基本语法如下:

  • 输入文件:指定要处理的文件。如果未指定,则从标准输入读取数据。
  • 输出文件:指定输出结果的文件。如果未指定,则输出到标准输出。

2. 常用选项

  • -c:在每行前显示该行重复的次数。
  • -d:仅显示重复的行。
  • -u:仅显示不重复的行。
  • -i:忽略大小写差异。
  • -f N:忽略前 N 个字段的比较。
  • -s N:忽略前 N 个字符的比较。

3. 示例

假设有一个文件 file.txt,内容如下:

使用 uniq 命令处理该文件:

输出结果为:

4. 结合 sort 使用

由于 uniq 只能删除连续的重复行,因此通常需要先使用 sort 命令对文件进行排序,以确保所有重复行都是连续的:

5. 显示重复次数

使用 -c 选项可以显示每行重复的次数:

输出结果为:

6. 仅显示重复行

使用 -d 选项可以仅显示重复的行:

输出结果为:

7. 仅显示不重复行

使用 -u 选项可以仅显示不重复的行:

输出结果为:

8. 忽略大小写

使用 -i 选项可以忽略大小写差异:

9. 忽略字段或字符

使用 -f-s 选项可以忽略前 N 个字段或字符的比较:

这将忽略每行的第一个字段进行比较。

纠错
反馈