文章目录
- 1. 基本用法
- 2. 常用参数
- 3. 用法举例
- 4. 注意事项
sort
命令用于对文本文件中的行进行排序,支持按字母顺序、数值大小、特定字段等方式进行排序。默认按字母顺序升序排序。
1. 基本用法
-
语法:
sort [选项] 文件 sort [选项] -o 输出文件 文件
-
功能:
- 对文件中的行进行排序,可按字母、数值、字段或其他规则自定义排序方式。
-
此命令是否系统自带:此命令是系统默认自带的,无需额外安装。
2. 常用参数
- 基本选项:
-r
:反转排序(降序)。-o <文件>
:将结果输出到指定文件,支持覆盖原文件。-u
:去重,只保留唯一的行。
- 数值和特定排序:
-n
:按数值排序。-h
:按人类可读的大小排序(例如1K
、2M
)。-M
:按月份排序(例如Jan
、Feb
)。
- 字段和分隔符:
-k <字段>
:按指定字段排序(例如-k2
按第 2 列排序)。-t <分隔符>
:指定字段分隔符,默认是空格或制表符。
- 性能优化:
--parallel=<N>
:设置排序线程数。-S <大小>
:设置排序缓冲区大小,例如50M
。-T <目录>
:指定临时文件目录。
- 辅助选项:
--help
:显示帮助信息。--version
:显示命令版本信息。
3. 用法举例
-
基本排序:
按字母顺序对文件内容排序:sort file.txt
-
降序排序:
sort -r file.txt
-
数值排序:
对数值按大小排序:sort -n numbers.txt
-
按字段排序:
按第 2 列排序(以空格分隔):sort -k2 file.txt
-
指定分隔符:
按冒号分隔的第 1 列排序(例如/etc/passwd
):sort -t: -k1 /etc/passwd
-
去重排序:
排序并去掉重复的行:sort -u file.txt
-
将结果保存到文件:
sort -o sorted.txt file.txt
-
按人类可读大小排序:
排序类似1K
、2M
的文件大小:sort -h sizes.txt
-
按月份排序:
sort -M months.txt
4. 注意事项
- 默认情况下,
sort
不会修改原文件,需使用-o
参数覆盖。 - 如果排序字段包含特殊分隔符(如逗号、冒号等),需使用
-t
指定分隔符。 -k
参数支持范围,例如-k2,3
表示从第 2 列到第 3 列排序。- 对于大文件排序,建议使用
-S
设置较大的缓冲区,避免过多的磁盘 I/O。 - 在多核系统中,可通过
--parallel
提高排序效率。