找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27498|回复: 4

[代码合集] sort命令默认是怎么排序的?

[复制链接]
发表于 2011-11-16 16:07:14 | 显示全部楼层 |阅读模式
  1. 今天学习sort
  2. 我的代码是:sort /+8<1.txt
  3. 其结果是:
  4. !@#$%%^
  5. a
  6. 32
  7. 002
  8. 01
  9. 635464316874321346461
  10. aaaaa555
  11. aaaaaaaaaaaaaaaaa
  12. cccccccccccc5555
  13. dddddddddddddddd
  14. dh   sadjkgf
  15. cgbvjlug
  16. ***ldfkgopiahd
  17. );ldkahfa
  18.     kasjdhfa
  19. klsdfyhkcbv
  20.    &kajsdhfpioa
  21. ***aldksfjaoisdf
  22. 不明白,sort默认怎么排序的,/+8之前是怎么排序的,非字符数字的符号怎么排序的?
复制代码
发表于 2011-11-16 16:10:54 | 显示全部楼层
系统帮助的内容:
  /+n                         指定开始每个比较的字符号码 n。/+3 说明每个
                              比较应从每行的第三个字符开始。少于 n 个字符
                              的行排在其他行之前。按默认值,从每行的第一
                              个字符开始比较。
发表于 2011-11-16 16:26:42 | 显示全部楼层
回复 2# CrLf


    那么32怎么回在002和01前面呢?
发表于 2011-11-16 17:47:55 | 显示全部楼层
回复 3# bluewing009



   32是两位数,002 是三个...
额...
发表于 2011-11-16 18:01:42 | 显示全部楼层
本帖最后由 CrLf 于 2011-11-16 18:29 编辑

大发现,原来 sort /+超过行最大字数时,将逆序输出。
那么...
  1. @echo off
  2. sort /+30 %0>将自身逆序输出.txt
  3. pause
  4. ::test
  5. rem 测试
复制代码
寒夜版主对此这样解释(非原话,我有可能曲解):
sort 应该是先把文件载入内存,再倒序向上比较大小,符合时输出符合的内容,不符合时输出当前行,总之是先入后出。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 06:55 , Processed in 0.028504 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表