首页/系统/Windows 运维速查/sort 文本行排序
CMD 常用命令74 条

sort 文本行排序

对文本文件或管道内容按行排序:可指定起始列与逆序,输出用 /o 或重定向保存。

Windows 运维速查系统更新于 2026-10-13

sort 是什么

sort 是 CMD 的文本排序命令,能把文件内容或管道输出按行排序,支持从指定列开始比较(/+n)和逆序(/r),结果用 /o 写文件或用重定向保存。它的比较规则跟随系统的区域设置与代码页,因此中文排序结果不一定等于拼音顺序。默认按整行字符串比较,不做数值大小判断,数字清单排出来的顺序常常和直觉不同。

基本信息

适用平台Windows CMD
语法sort [/r] [/+n] [/o 输出文件] [输入文件]
开关/r 逆序、/+n 从第 n 列比较、/o 输出到文件
输入来源文件参数,或管道如 netstat -ano | sort
排序规则字符串比较,受区域设置与代码页影响

典型使用场景

  • 整理导出的机器名、人员名单,方便人工核对顺序
  • 把 IP、端口清单排序后观察分布和重复项
  • 对 netstat、tasklist 的管道输出排序,快速定位目标条目
  • 两份清单比对之前先各自排序,便于逐行对照
  • 生成有序的 hosts 或白名单片段,交给下游脚本
  • 按列排序日志行,把同一来源的记录聚在一起

常用示例

常用示例
sort names.txt                        REM 整行升序,输出到屏幕
sort /r names.txt                     REM 逆序输出
sort /+20 hosts.txt                   REM 从第 20 列开始比较
sort /o sorted.txt names.txt          REM 结果写文件,避免覆盖源文件
netstat -ano | findstr LISTENING | sort    REM 管道排序
REM 复杂排序改用 PowerShell:
Import-Csv list.csv | Sort-Object Port -Descending

开关与输出读法

开关或现象含义注意
/+n从第 n 个字符开始比较列偏移按字符数算,含空格
/r逆序输出只反转顺序,不改比较规则
/o 文件把结果写进指定文件比用重定向符号更安全,不会误清源文件
中文排序结果按当前代码页的字节序排不是拼音序,需拼音序用 Sort-Object
数字清单按字符串比较会得到 1、10、2 这类顺序
sort 会把整份输入读进内存再输出,超大文件建议先过滤再排序;需要按多列、按数值或按日期排序时,用 PowerShell 的 Sort-Object 并显式指定比较类型。
它不支持去重,重复行会照原样保留;去重可以用管道接 PowerShell 的 Sort-Object -Unique,或者按行导入后 Get-Unique。

易错点

  • sort 输入 > 输入(把输出重定向回源文件):源文件先被截断,数据全部丢失,必须用 /o 或另写新文件
  • 指望中文按拼音排序:sort 按代码页字节序排,结果可能完全不符合中文阅读习惯
  • 带表头的文件直接排序:表头会被当成数据参与排序,应先剔除首行
  • 用 sort 排数字:按字符串比较,最大最小值判断会错,改用 Sort-Object 显式指定数值

数据来源与参考

  • Microsoft Learn:sort 命令

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌