> 文本处理与搜索 > sort

sort -u: 排序并去重

sort -u 命令对文本文件或标准输入的内容进行排序,并去除重复的行,只输出唯一的行。在去除数据列表中的重复项并进行清理时非常有用。

概述

sort -u 在对输入数据进行升序排序的同时,还会删除所有重复的行,只保留一个。这在日志文件分析、生成唯一项目列表、数据清理等多种场景下非常有用。

主要特点

  • 对数据进行排序并自动删除重复行
  • 可通过管道符(|)与其它命令的输出进行联动
  • 支持数字、特定字段等多种排序 기준
  • 大文件处理效率高

主要选项

介绍 sort 命令的各种选项中,与 -u 一起常用或补充 sort -u 功能的选项。

去重与基本操作

排序 기준

输出与其他

生成的命令:

请尝试组合命令。

描述:

`sort` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

通过 sort -u 命令的各种实际应用示例,学习其用法。

对文件内容排序并去重

sort -u file.txt

对 file.txt 的内容进行排序并去除重复行,然后显示到标准输出。

通过管道处理输入

cat file.txt | sort -u

接收其他命令的输出,进行排序并去重。例如,通过 `cat` 命令传递文件内容。

按数字排序并去重

sort -nu numbers.txt

将 numbers.txt 文件中的数字作为数值进行排序并去除重复项。

按特定字段排序并去重

sort -t',' -uk2 data.csv

以逗号 (,) 分隔的 data.csv 文件为例,按第二个字段排序并去重。

将结果保存到新文件

sort -u input.txt -o output.txt

将排序和去重后的结果保存到 output.txt 文件中。

提示与注意事项

提供使用 sort -u 命令时的有用提示和注意事项。

sort -u 与 uniq 的区别

  • sort -u: 对整个输入进行排序后再去重。因此,它会去除文件中所有位置的重复项。
  • uniq: 只去除相邻行的重复项。要使用 `uniq`,必须先用 `sort` 命令对数据进行排序。`sort -u` 是一个方便地一次性完成这两个过程的方法。

大小写区分

  • 默认行为: sort -u 默认区分大小写,将 'Apple' 和 'apple' 视为不同的行。
  • 忽略大小写: 如果想忽略大小写进行去重,请同时使用 `-f` (fold-case) 选项。例如:`sort -uf file.txt`

大文件处理性能

  • 内存使用: 处理大文件时,sort 可能会占用大量系统内存。可以使用 `-S` 选项指定内存缓冲区大小来调整性能。(例如:`-S 50%` 表示使用 50% 的可用内存)
  • 临时文件: 当内存不足时,sort 会创建临时文件。可以使用 `-T` 选项指定临时文件的存储目录。(例如:`-T /tmp`)

相同类别命令